找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2598|回复: 7

师傅再不用担心我的表单不会写JSP快速处理好表单交于手中

[复制链接]
发表于 2017-6-28 22:51:54 | 显示全部楼层 |阅读模式
<jsp:useBean id="user" class="UserData" scope="session"/>
  <HTML>
  <BODY>
  <FORM METHOD=POST ACTION="SaveName.jsp">
  What's your name? <INPUT TYPE=TEXT NAME=username
  SIZE=20 VALUE="<%= user.getUsername() %>"><BR>
  What's your e-mail address? <INPUT TYPE=TEXT
  NAME=email SIZE=20
  VALUE="<%= user.getEmail() %>"><BR>
  What's your age? <INPUT TYPE=TEXT NAME=age
  SIZE=4 VALUE=<%= user.getAge() %>>
  <P><INPUT TYPE=SUBMIT>
  </FORM>
  </BODY>
  </HTML>
 比如来自Blazix服务器的标志库在你的系统环境中不能使用,那么不使用标志库来实现相似的功能呢?本教程就是为这个问题而提出的。这个问题是可以解决的,只是代码要长一点。主要地,你必须亲自编辑HTML标志,然后将它设置缺省值。从下面的例子的例子中我们可以学到怎样修改GetName.jsp以提供类似于blx:getProperty的特性,但是我们只能手工地编辑HTML标志:


  如上面的代码所示,它只简单地在INPUT标志上增加一个“VALUE”区域,并且用一个表达是初始化这个区域。
  为了处理在输入过程中的异常错误,我们可以在bean中使用“String”区域并且将它转换为目标数据类型就可实现。所以这样也可以处理异常错误。
  作为课后练习,我们可以将前面教程中的例子改成不用Blazix标志库。
  至此,本“JSP由浅入深”系列教程到此全部结束,希望对你有帮助。
下面的图是我用myeclipse建立的项目的目录。

目录结构有点多哈。。。没事其实很简单的!
下面是我的index.jsp中的全部代码:这里只是有一个表单,提交到TestServlet.java这个servlet中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>



<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>




    <h1>测试servlet</h1>
   
    <hr>
        <form action="servlet/TestServlet" method="post" dir="ltr">
            <input name="userID" type="text"><br>
            <input value="查询" type="submit"><br>
        </form>
        
    b.jsp

      





下面是TestServlet.java中的全部代码:这个是获取表单提交的内容,然后转发到另一个页面(c.jsp),其中这里包含一个业务逻辑(UserManager.java)
UserManager usermanager=new UserManager();
List userlist=usermanager.findUserByName(username);
以上这两行代码是业务逻辑的代码,获取数据。
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

package com.majianjie.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
        
        //取得表单数据
        
        String username=req.getParameter("username");
        UserManager usermanager=new UserManager();
        List userlist=usermanager.findUserByName(username);
        
        req.setAttribute("userlist", userlist);//设置到req中,key-->value
        
        //转向到一个界面c.jsp,取出list中的数据
        req.getRequestDispatcher("/a/b/http://blog.csdn.net/majianjie/article/details/c/c.jsp").forward(req, res);//转发getRequestDispatcher
        
    }   
}




下面是UserManager.java 的代码行(即业务逻辑)
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.majianjie.servlet;

import java.util.ArrayList;
import java.util.List;

public class UserManager {

    public List<string> findUserByName(String name){
        List<string> userList=new ArrayList<string>();
        userList.add("数据一");
        userList.add("数据二");
        userList.add("数据三");
        return userList;
    }
}
</string></string></string>




下面是c.jsp的代码
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
   
<%@ page import="java.util.*" %>



<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>

c.jsp
    <p>
    <%
        List userList = (List)request.getAttribute("userlist");
        out.println(userList);
   
    %>
    </p><p>
a.jsp

</p>




下面是a.jsp的代码
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>







a.jsp





下面是b.jsp的代码

<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>






b.jsp




a.jsp

c.jsp

d.jsp

e.jsp





d.jsp, e.jsp中的代码和a.jsp中的代码一样,唯一不同的就是: 将a改为d ,将a改为e......大部分代码是自动生成的,很省事的。
最后是web.xml中的代码:这里是一些配置信息。很重要的!!!嘿嘿嘿
  • <span style="font-size:18px;"><form name="userForm" method="post" action="modifyuser.do?action=adduser" onSubmit="return userValidate();">  
  • <div class="MainDiv">  
  • <table width="99%" border="0" cellpadding="0" cellspacing="0" class="CContent">  
  •   <tr>  
  •       <th class="tablestyle_title" >人员信息录入</th>  
  •   </tr>  
  •   <tr>  
  •     <td class="CPanel">  
  •          
  •         <table width="90%" border="0" cellpadding="0" cellspacing="0" style="width:80%" align="center">  
  •         <tr><td align="left">  
  •         <input type="submit"value="保存" class="button"/>   
  •               
  •             <input type="reset" value="返回" class="button"/>  
  •         </td></tr>  
  •          
  •         <TR>  
  •             <TD width="100%">  
  •                 <fieldset style="height:100%;">  
  •                 <legend>人员信息</legend>  
  •                 <table width="100%" border="0" cellpadding="2" cellspacing="1" style="width:100%">  
  •                     <tr>  
  •                         <td nowrap align="right" width="9%">用户名:</td>  
  •                         <td width="36%">  
  •                         <input name="username" type="text" class="input" id="username"/>  
  •                         <span class="red">*</span></td>  
  •                         <td width="12%"><div align="right">登陆密码:</div></td>  
  •                         <td width="43%">  
  •                         <input name="password" type="text" class="input" id="password" />  
  •                         <span class="red">*</span></tr>  
  •                     <tr>  
  •                         <td nowrap align="right" width="9%">性别:</td>  
  •                         <td>  
  •                         <input name="sex" type="radio" value="1" checked> 男  
  •                         <input name="sex" type="radio" value="0">女</td>  
  •                         <td><div align="right">出生日期:</div></td>  
  •                         <td>  
  •                         <input name="birthday" type="text" class="input" id="birthday">  
  •                         <span class="red">*</span></td>  
  •                     </tr>  
  •                     <tr>  
  •                         <td nowrap align="right">是否管理员:</td>  
  •                         <td>  
  •                         <input name="isadminhelp" type="checkbox" onClick="javascript:adminChecked();" >  
  •                         <input type="hidden"  name="isadmin" ></td>  
  •                         <td> </td>  
  •                         <td> </td>  
  •                     </tr>  
  •                     <tr>  
  •                         <td nowrap align="right">人员简介:</td>  
  •                         <td colspan="3">  
  •                         <textarea name="content" cols="100" rows="6" class="input" id="content"></textarea></td>  
  •                     </tr>  
  •                 </table>  
  •                      <br />  
  •                 </fieldset>  
  •                 </TD>  
  •               
  •         </TR>  
  •         </TABLE>  
  •      </td>  
  •   </tr>  
  •         <TR>  
  •             <TD colspan="2" align="center" height="50px">  
  •             <input name="提交" type="submit" class="button" value="保存"/>   
  •               
  •             <input name="重置" type="reset" class="button" value="重置"/></TD>  
  •         </TR>  
  •         </TABLE>  
  • </div>  
  • </form></span>  


form的action="modifyuser.do?action=adduser"是一个虚假的url
它在struts.config.xml中通过 type="com.sanqing.action.UsersAction"设置它的表单交由谁处理

[html] view plain copy


  • <action name="userForm" path="/modifyuser" scope="session" type="com.sanqing.action.UsersAction">  
  •      <forward name="success" path="/user.do?action=listuser" />  
  •    </action>  


UserAction.java代码如下:


[java] view plain copy


  • package com.sanqing.action;  
  •   
  • import javax.servlet.http.HttpServletRequest;  
  • import javax.servlet.http.HttpServletResponse;  
  •   
  • import org.apache.struts.action.Action;  
  • import org.apache.struts.action.ActionForm;  
  • import org.apache.struts.action.ActionForward;  
  • import org.apache.struts.action.ActionMapping;  
  • import org.hibernate.HibernateException;  
  •   
  • import com.sanqing.dao.UsersDao;  
  • import com.sanqing.po.Users;  
  •   
  • public class UsersAction extends Action {  
  •   
  •     private UsersDao dao=new UsersDao();  
  •   
  •     public ActionForward execute(ActionMapping mapping, ActionForm form,  
  •         HttpServletRequest request, HttpServletResponse response) throws Exception {  
  •         String action =request.getParameter("action");  
  •         if(action==null||"".equals(action)){  
  •             return mapping.findForward("error");  
  •         }else if("listuser".equals(action)){  
  •             return listUser(mapping,form,request,response);  
  •         }else if("adduser".equals(action)){  
  •             return addUsers(mapping,form,request,response);  
  •         }else if("logon".equals(action)){  
  •             return logon(mapping,form,request,response);  
  •         }else if("updateuser".equals(action)){  
  •             return updateUser(mapping,form,request,response);  
  •         }else if("deleteuser".equals(action)){  
  •             return deleteUser(mapping,form,request,response);  
  •         }else if("selectuser".equals(action)){  
  •             return selectUser(mapping,form,request,response);  
  •         }  
  •         return mapping.findForward("error");  
  •     }  
  •   
  •     private ActionForward selectUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){  
  •         Long id=new Long(request.getParameter("id"));//获得id参数  
  •         Users u=dao.loadUsers(id);//加载该ID对应的人员信息  
  •         request.setAttribute("user",u);//将人员信息设置到request范围  
  •         return mapping.findForward("success");//跳转到success对应的逻辑视图  
  •     }  
  •       
  •     private ActionForward updateUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){  
  •         UsersForm usersform=(UsersForm)form;//获得UsersForm  
  •         Users users=usersform.populate();//获得提交的人员信息  
  •         dao.updateUsers(users);//更新人员信息  
  •         return mapping.findForward("success");//跳转到success对应的逻辑视图  
  •     }  
  •   
  •     private ActionForward deleteUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){  
  •         Long id=new Long(request.getParameter("id"));//获得id参数  
  •         Users users=new Users();//新建一个users对象  
  •         users.setId(id);//设置该users对象的id  
  •         dao.deleteUsers(users);//删除该users对象  
  •         return mapping.findForward("success");  
  •     }  
  •     private ActionForward logon(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws HibernateException {  
  •         UsersForm usersform=(UsersForm)form;  
  •         Users users=new Users();  
  •         users.setUsername(usersform.getUsername());  
  •         users.setPassword(usersform.getPassword());  
  •         boolean flag=dao.logonUsers(users);  
  •         if(flag){  
  •             request.getSession().setAttribute("users",users);  
  •             return mapping.findForward("success");  
  •         }else{  
  •             request.setAttribute("error", "登录失败");  
  •             return mapping.findForward("failed");  
  •        }  
  •     }  
  •   
  •     private ActionForward addUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){  
  •         UsersForm usersform=(UsersForm)form;    //获得UsersForm  
  •         Users users=usersform.populate();       //获得提交的人员信息  
  •         dao.addUsers(users);                    //完成人员信息保存  
  •         return mapping.findForward("success");  //跳转到成功页面  
  •     }  
  •   
  •     private ActionForward listUser(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){  
  •         request.setAttribute("list",dao.listUser());//将人员信息列表保存到request范围  
  •         return mapping.findForward("success");      //跳转到成功页面  
  •     }  
  •   
  • }  




qq.jpg

0

主题

804

回帖

988

积分

软件网站元老会员

积分
988
发表于 2017-7-12 05:35:23 | 显示全部楼层
,认真负责,我的链接自己弄错了,又给我重做了一个海报,万分感谢,好评奥。

0

主题

1214

回帖

2

积分

软件网站新手

积分
2
发表于 2017-7-18 12:49:14 | 显示全部楼层
真是好,真的是免费的呀。谢谢,祝你生意兴隆、财源滚滚!

0

主题

550

回帖

612

积分

软件网站元老会员

积分
612
发表于 2017-7-20 23:56:42 | 显示全部楼层
,服务和很热情。多多支持下

0

主题

534

回帖

598

积分

软件网站元老会员

积分
598
发表于 2017-7-21 23:12:17 | 显示全部楼层
的卖家,大力支持哦,客服们辛苦了,真心给你赞

0

主题

572

回帖

612

积分

软件网站元老会员

积分
612
发表于 2017-7-25 03:44:22 | 显示全部楼层
有道理。。。

0

主题

608

回帖

638

积分

软件网站元老会员

积分
638
发表于 2017-7-26 13:44:22 | 显示全部楼层
强大,效果不错,信息非常强大,非常适合微商平台。客服人员很有耐心,老板非常诚信。值得分享!!!

0

主题

554

回帖

599

积分

软件网站元老会员

积分
599
发表于 2017-7-26 20:52:54 | 显示全部楼层
,非常迅速!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|

GMT+8, 2026-10-26 20:29

安卓脚本软件 · 键鼠盒子 · HID · 机械臂

快速回复 返回顶部 返回列表

随机推荐 · 热帖 / 新帖 / 随便看看

社区会员(随机展示)