JSP应用的自我理解之三:JSP+Servlet实现表单验证
2014-04-06 17:55
369 查看
示例说明:通过一个表单提交页面提交给Servlet,Servlet获取信息,经过处理后,将信息存入request对象中,如果用户提交姓名为空,将重新返回登录首页,否则,把提交的信息全部显示出来
下面具体实现了~~
1、新建一个Dynamic WEB工程,名为formtt
2、新建一个登录界面index.jsp,完成登录界面的编写,具体代码如下:
3、在服务器端建立一个包org.luojs.servlet,然后在该包下新建一个TestServlet的Java类,完成服务器端对表单的处理
具体代码如下:
4、配置web.xml文件
5、跑一跑试试看,发现还行,
但输入中文文字时,出现的是乱码
所以,你要用filter监听器技术来实现中文乱码解决的问题~~
(1)在org.luojs.servlet包下新建一个CharaterEncoding的Java类,具体代码如下:
(2)在web.xml中加入如下代码:
然后,你再跑跑,看到中文字符了,差不多了~~
参考书目:《JSP基础与案例开发详解》,清华大学出版社
下面具体实现了~~
1、新建一个Dynamic WEB工程,名为formtt
2、新建一个登录界面index.jsp,完成登录界面的编写,具体代码如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>表单提交</title> </head> <body><br/> <form id="form1" name="form1" method="post" action="test"> <p align="center"><strong>表单提交</strong></p> <table width="331" height="147" border="1" align="center" cellpadding="0" cellspacing="0"> <tr> <td width="76" height="35">username:</td> <td width="183"><label> <input type="text" name="name" id="textfield" height="20"/> </label></td> <td width="50"> </td> </tr> <tr> <td>sex:</td> <td><input type="radio" name="sex" value="boy"/>boy<input type="radio" name="sex" value="girl"/>girl</td> <td> </td> </tr> <tr> <td>address:</td> <td><input type="text" name="address" id="textfield3" height="20"/></td> <td> </td> </tr> <tr> <td>likes:</td> <td><label> <input type="checkbox" name="likes" id="checkbox" value="sing" />sing <input type="checkbox" name="likes" id="checkbox2" value="dance"/>dance <input type="checkbox" name="likes" id="checkbox3" value="game"/>game </label></td> <td> </td> </tr> <tr> <td> </td> <td><input name="" type="submit" value="submit" /> <input name="" type="reset" value="reset" /></td> <td> </td> </tr> </table> </form> </body> </html>具体的界面如下:
3、在服务器端建立一个包org.luojs.servlet,然后在该包下新建一个TestServlet的Java类,完成服务器端对表单的处理
具体代码如下:
package org.luojs.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestServlet extends HttpServlet{ public void destroy() { super.destroy(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取表单信息 String name = request.getParameter("name"); String sex = request.getParameter("sex"); String address = request.getParameter("address"); String[] likes = request.getParameterValues("likes"); String URL = "index.jsp"; String likes2 = ""; if (null != likes) { for (String string : likes) { likes2 += string + " "; } } if (null != name && !name.equals("")) { // 把从页面获取的内容放入request中 request.setAttribute("name", name); request.setAttribute("sex", sex); request.setAttribute("address", address); request.setAttribute("likes", likes2); URL = "result.jsp"; } request.getRequestDispatcher(URL).forward(request, response); } public void init() throws ServletException { } }
4、配置web.xml文件
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0" metadata-complete="true"> <!-- 注册servlet信息 --> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>org.luojs.servlet.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
5、跑一跑试试看,发现还行,
但输入中文文字时,出现的是乱码
所以,你要用filter监听器技术来实现中文乱码解决的问题~~
(1)在org.luojs.servlet包下新建一个CharaterEncoding的Java类,具体代码如下:
package org.luojs.servlet; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class CharacterEncoding implements Filter{ private FilterConfig config; //此filter被释放时的回调方法 public void destroy() { } //主要做过滤工作的方法 //FilterChain用于调用过滤器链中的下一个过滤器 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获取此Filter的初始参数的值 String encoding = config.getInitParameter("encoding"); if(null != encoding && !"".equals(encoding)){ request.setCharacterEncoding(encoding); //设置请求数据的编码方式 } //把请求和响应对象传给过滤链中的下一个要调用的过滤器或Sevlet chain.doFilter(request, response); } //些filter初始化时的回调方法 //FilterConfig接口实例中封装了这个Filter的初始化参数 public void init(FilterConfig config) throws ServletException { this.config = config; } }
(2)在web.xml中加入如下代码:
<!-- 解决中文乱码问题 --> <filter> <filter-name>CharacterEncoding</filter-name> <filter-class>org.luojs.servlet.CharacterEncoding</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping a375 > <filter-name>CharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然后,你再跑跑,看到中文字符了,差不多了~~
参考书目:《JSP基础与案例开发详解》,清华大学出版社
相关文章推荐
- JSP应用的自我理解之一:JSP页面构成与具体实现
- JSP应用的自我理解之二:JSP的异常处理机制及具体实现
- JSP应用的自我理解之4:JSP+JavaBean设计模式的具体实现
- JSP应用的自我理解之5:MVC设计模式的具体实现
- #笔记#圣思园 JavaWeb 第22讲——表单确认,JavaScript和Servlet实现客户端与服务器端验证
- servlet+jsp+java实现Web 应用 概念,实现
- jsp实现文件上传以及表单验证
- servlet+jsp+java实现Web 应用
- JSP实现表单验证
- JAVA遇见HTML—Servlet篇(二.Servlet高级-应用MVC架构实现购物车Demo+JSP)
- JSP+Servlet实现图片验证码
- Servlet-从form表单跳转到另一Servlet做验证等操作实现方法
- JSP之应用Servlet过滤器进行身份验证
- JSP+Servlet+JDBC+MySQL实现表单生成
- 使用JSP Servlet和Ajax实现简单的注册页面的用户名密码验证
- JSP+Servlet + JDBC 实现简单的登录验证模块
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架
- Servlet的自我理解之7:Servlet过滤器技术的具体实现
- servlet+jsp+java实现Web 应用
- struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架