JSP通过Servlet提交表单数据并显示

今天试着实现一个小Demo,通过一个注册页面,提交我们所填写的数据,并且显示在一个表格内:




步骤一:

通过分析,需求,我们需要先写好两个JSP:

register.jsp

<form method="post" action="register">
  注册页面
    <table>
    <!-- 第一行 -->
     <tr>
      <td>
    	账户:
      </td>
      <td>
    	<input type="text" name="account"/>
      </td>
     </tr>
     <!-- 第二行 -->
     <tr>
      <td>
    	姓名:
      </td>
      <td>
    	<input type="text" name="name"/>
      </td>
     </tr>
     <!-- 第三行 -->
     <tr>
      <td>
    	性别:
      </td>
      <td>
    	<select name="gender">
    	<option value="M">男</option>
    	<option value="W">女</option>
    	</select>
      </td>
     </tr>
     <!-- 第四行 -->
     <tr>
      <td>
    	爱好:
      </td>
      <td>
    	<input type="checkbox" name="interest" value="吃饭"/>吃饭
    	<input type="checkbox" name="interest" value="睡觉"/>睡觉
    	<input type="checkbox" name="interest" value="打豆豆"/>打豆豆
      </td>
     </tr>
     <!-- 第五行 -->
     <tr>
      <td>
    	简介:
      </td>
      <td>
    	<textarea rows="8" cols="20" name="msg"></textarea>
      </td>
     </tr>
     <!-- 第六行 -->
     <tr>
      <td>
    	
      </td>
      <td>
    	<input type="submit" value="提交" />
      </td>
     </tr>
    </table>
  </form>


userlist.jsp


用户列表
    <table border="1px;">
     <!-- 第一行 -->
     <tr>
      <td>序号</td>
      <td>账号</td>
      <td>姓名</td>
      <td>性别</td>
      <td>爱好</td>
      <td>简介</td>
     </tr>
      <!-- 第二行 -->

     <tr>
     <td><%=1%></td>
     <td><%=user.getAccount()%></td>
     <td><%=user.getName()%></td>
     <td><%=user.getGender()%></td>
     <td><%=user.getInterest()%></td>
     <td><%=user.getMsg()%></td>
     </tr>

    </table>

我们定义好每个数据的name属性之后,就可以在自定义的Servlet里获取到数据,传给 userlist.jsp并进行显示:

RegisterServlet:

public class RegisterServlet extends HttpServlet{
	
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8"); 
		
		String account = req.getParameter("account");
		String name =req.getParameter("name");
		String gender = req.getParameter("gender");
		String[] interest =req.getParameterValues("interest");
		String msg =req.getParameter("msg");
		
		UserBean userBean = new UserBean();
		userBean.setAccount(account);
		userBean.setName(name);
		userBean.setGender(gender);
		userBean.setInterest(interest);
		userBean.setMsg(msg);
	
		
		req.setAttribute("USERLIST", userBean);
		req.getRequestDispatcher("userlist.jsp").forward(req, resp);
	}
	
	
}

我们在Myeclipse里自定义了Servlet类后,要在WebRoot文件夹下,WEB-INF下的web.xml进行配置

<servlet>
   <servlet-name>registerServlet</servlet-name>
   <servlet-class>org.great.servlet.RegisterServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>registerServlet</servlet-name>
   <url-pattern>/register</url-pattern>
  </servlet-mapping>

对外,我们需要使用到这个类的使用,我们的连接口就是register

我们的UserBean类:

public class UserBean {
	private String account;
	private String name;
	private String gender;
	private String []interest;
	private String msg;
	

	public String getAccount() {
		return account;
	}
	public void setAccount(String account) {
		this.account = account;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	
	public String[] getInterest() {
		return interest;
	}
	public void setInterest(String[] interest) {
		this.interest = interest;
	}
	public String getMsg() {
		return msg;
	}
	public void setMsg(String msg) {
		this.msg = msg;
	}

}

到这里,我们发现缺了点什么,是因为我们没有在userlist.jsp中获取到我们表单提交的数据,我们需要增加一句代码:

  <%
      UserBean user = (UserBean)request.getAttribute("USERLIST");
   %>


这样,我们就从register.jsp,通过Servlet,get到数据,并添加进列表中了。




结果:


在获取textbox数据时,格式有误,待以后学习,再解决,有解决方法的朋友欢迎留言探讨。


  • 14
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值