java - jsp同一个页面form表单的数据提交问题?
阿神
阿神 2017-04-17 17:47:42
[Java讨论组]

下面是代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <link rel="stylesheet" type="text/css" href="./CSS/changekey.css" />
    <script type="text/javascript" src="./Script/changekey.js"></script>
    <jsp:useBean id="account" class="beans.Account" scope="session"></jsp:useBean>
    <jsp:useBean id="changekey" class="beans.ChangeKey" scope="page"></jsp:useBean>
    
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form id="changekey" name="changekey" method="post" action="#" onsubmit="return changekey()">

<table>
<tr>
<td>输入旧密码:</td><td><input class="put"  type="password" id="oldk" name="oldk"  /> </td>
</tr>

<tr>
<td>请输入新密码:</td><td><input class="put"  type="password" id="new1" name="new1"  /></td>
</tr>

<tr>
<td>再一次输入新密码:</td><td><input class="put"  type="password" id="new2" name="new2"  /></td>
</tr>

<tr>
<td></td><td><input class="put"  type="submit" id="new3" name="new3"  /></td>
</tr>

</table>

</form>
<%
    changekey.setId(account.getID());
    if(changekey.setOld(request.getParameter("oldk"))){ //在这一行的时候怎么让他等form、的表单提交了之后再执行?是可以用servlet解决,但是这里在jsp页面加载的时候就执行了,返回的表单内容是null,如何等提交后再执行?
        changekey.setNewkey(request.getParameter("new1"));
    }else {
        out.println("原始密码错误!");
    }
%>
</body>
</html>

if(changekey.setOld(request.getParameter("oldk"))){ //在这一行的时候怎么让他等form、的表单提交了之后再执行?是可以用servlet解决,但是这里在jsp页面加载的时候就执行了,返回的表单内容是null,如何等提交后再执行?

阿神
阿神

闭关修行中......

全部回复(2)
巴扎黑

你这么写 说明你还没有理解 javaWeb里的前端后端。 java脚本并不是说写在最后就是最后执行。

不论你写在哪都是:

  • 服务器先处理java脚本,对于html只是把它当普通文本 ,之后发送给浏览器

  • 浏览器只处理html内容,看不到java代码

另外 jsp里及展示数据又负责数据验证处理并不好。对于其他人去阅读你的代码回非常麻烦,不过这样的实现也有不少,单纯实习功能参考以下代码, 最后,不推荐业务逻辑也数据展示写到一起!

刚开始学的时候你可以试着 把html内容遮盖住,然后写java代码,之后再倒过来吧java遮住。
你可以把他们想象成地下党接头,两拨人一直不见面,交流都是通过去固定的地方放小纸条。

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
<% 
    String oldk = request.getParameter("oldk");
    String msg="";
    if(oldk!=null && !oldk.trim().equals("")){
        // 处理数据
        XXService.changeKey(oldk);
        // 处理之后跳转页面
        response.sendRedirect(request.getContextPath() + "xxx.html");
    }else{
        msg = "请输入XXX"
    }
%>

<p><%=msg%></p>
<form method="post" action="#" >
    <input type="password" name="oldk"  />
    <input type="submit" >
</form>
PHP中文网

问出这样的问题只能说明你还没理解前端后端的关系,后端代码怎么能在前端执行呢?要执行请用前端代码。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号