公司做项目,一直在开发了SAP系统,.很没有做过JavaWeb项目了,.今天有点时间来复习下Servlet 和JSP ,已经Filter过滤器知识..
我们知道Filter过滤器,能为我们,
1)过滤字符..处理乱码.设置统一字符编码,
2)对用户登录的验证.
3)改变图片的格式.
4)做相应的压缩处理.等等..
新建JavaWeb项目,取名为:MyFristDemo.
在项目中:
建立 pack.java.filter 包, 建立一个Filter过滤器,取名为:MyFilter.java
建立 pack.java.servlet 包, 建立一个Servlet,取名为:MyServlet.java
下面是一个MyServlet.java文件,Myservelt需要继承 HttpServlet类,重写eservice方法,用来处理get和post请求.这里只是接收页面输入的字符,.并且显示的作用..并没有做其他的处理
public class MyServlet extends HttpServlet {
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.flush();
out.close();
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String username = request.getParameter("username");
String password = request.getParameter("password");
out.print(username+","+password);
out.flush();
out.close();
}
}
下面是一个MyFilter文件. Filter 需要实现Filter接口..并且实现doFilter()方法.
public class MyFilter implements Filter {
private FilterConfig filterConfig;
private String enconfig;
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig=null;
this.enconfig=null;
System.out.println("过滤器销毁成功!");
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
if (this.enconfig!=null) {
request.setCharacterEncoding(this.enconfig);
response.setCharacterEncoding(this.enconfig);
System.out.println("过滤器处理中:"+this.enconfig);
}
//处理权交给下一个过滤器;
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig=arg0;
//获得,web.xml文件中配置languageconfig 的值,我在web.xml文件中配置了languageconfig 的值为:utf-8;
this.enconfig=this.filterConfig.getInitParameter("languageconfig");
System.out.println("过滤器初始化成功!");
}
}
XML配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>MyFilter</filter-name> --过滤器名称的定义.(任意取)
<filter-class>pack.java.filter.MyFilter</filter-class> --指定到过滤器的package 和所在的Class文件
<init-param> --初始参数配置. (在这里配置,目的是为了,在doFilter获得,
<param-name>languageconfig</param-name> --参数名
<param-value>utf-8</param-value> --参数值.
</init-param>
</filter>
<filter-mapping> --过滤器映射.
<filter-name>MyFilter</filter-name> --过滤器名称
<url-pattern>/*</url-pattern> --过滤所有文件,当然你也可以过滤某个文件下的文件.
</filter-mapping>
<servlet> --Servlet的配置,这里与上面差不多.不详细介绍.
<servlet-name>MyServlet</servlet-name>
<servlet-class>pack.java.servlet.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
在新建JSP页面.
<form action="MyServlet" method="post">
UserName:<input type="text" name="username" style="border:1px solid red"/><br/>
PassWord:<input type="password" name="password" style="border:1px solid red"/><br/>
<input type="submit" name="btnSubmit" value="Submit"/>
</form>