index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> This is my JSP page. <br> </body> </html>
Login.html
<!DOCTYPE html> <html> <head> <title>Login.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> This is my Login page. <br> <form name = "LoginForm" method ="post" action="Login"> 用户名:<input type ="text" name ="userName"><br><br> 密码:<input type ="password" name="password"><br><br> <input type="submit" value="登录"> <br><br><br><br><br> <a href = "login?userName=abcdef">测试get链接</a> </form> </body> </html>
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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"> <display-name>JSPforstudent</display-name> <welcome-file-list> <welcome-file>Login.html</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>testContextParam1</param-name> <param-value>testContextValue1</param-value> </context-param> <context-param> <param-name>testContextParam2</param-name> <param-value>testContextValue2</param-value> </context-param> <!--REBUILDSERVLET servlet 配置 --> <servlet> <servlet-name>rebuildServlet</servlet-name> <servlet-class>sch.cauc.study.sysmanage.RebuildServlet</servlet-class> </servlet> <servlet-mapping> <!-- 引用哪个servlet --> <servlet-name>rebuildServlet</servlet-name> <!-- 客户端访问servlet的名称 --> <url-pattern>/rebuild</url-pattern> </servlet-mapping> <!-- servlet 配置格式 --> <servlet> <servlet-name>testServlet</servlet-name> <servlet-class>sch.cauc.study.sysmanage.TestServlet</servlet-class> </servlet> <servlet-mapping> <!-- 引用那个servl --> <servlet-name>testServlet</servlet-name> <!-- 客户端访问servlet的名称 --> <url-pattern>/test</url-pattern> </servlet-mapping> <!-- servlet 配置格式 --> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>sch.cauc.study.sysmanage.LoginServlet</servlet-class> </servlet> <servlet-mapping> <!-- 引用那个servl /映射--> <servlet-name>LoginServlet</servlet-name> <!-- 客户端访问servlet的名称/匹配 --> <url-pattern>/Login</url-pattern> </servlet-mapping> <!-- servlet 配置格式 --> <servlet> <servlet-name>TestServletOther</servlet-name> <servlet-class>sch.cauc.study.sysmanage.TestServletOther</servlet-class> </servlet> <servlet-mapping> <!-- 引用那个servl /映射--> <servlet-name>TestServletOther</servlet-name> <!-- 客户端访问servlet的名称/匹配 --> <url-pattern>/Other</url-pattern> </servlet-mapping> <!-- filter 配置格式 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>sch.cauc.study.sysmanage.Filter.CharacterEncodingFilter</filter-class> <!-- 配置初始化参数 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <!-- --> <filter-name>characterEncodingFilter</filter-name> <!--如果是/*,则对此路径下所有servlet起作用,如果/servlet,则只对此servlet起作用 --> <url-pattern>/*</url-pattern> </filter-mapping> <!-- filter 配置格式 --> <filter> <filter-name>TestFilter1</filter-name> <filter-class>sch.cauc.study.sysmanage.Filter.TestFilter1</filter-class> <!-- 配置初始化参数 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <!-- --> <filter-name>TestFilter1</filter-name> <!--如果是/*,则对此路径下所有servlet起作用,如果/servlet,则只对此servlet起作用 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
TestServlet.java
package sch.cauc.study.sysmanage; import java.io.IOException; import java.io.PrintWriter; import javax.security.auth.message.callback.PrivateKeyCallback.Request; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sun.mail.iap.Response; public class TestServlet extends HttpServlet{ private static final long serialVersionUID=1L; /** * * 相应get请求方式 * 方法名:doGet * 1.直接访问servlet 2.直接在url上面写参数 * java里面初始化就是new */ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(); System.out.println("I AM DOGET"); System.out.println("这是相对路径: "+req.getRequestURI()); System.out.println("工程名: "+req.getContextPath()); System.out.println("这是绝对路径: "+req.getRequestURL()); System.out.println("客户端IP地址: "+req.getRemoteAddr()); System.out.println("服务器IP地址: "+req.getRemoteHost()); resp.setContentType("text/html;charset=utf-8"); //获取浏览器输出流(最原始的方法) PrintWriter out =resp.getWriter(); //数据库查询 out.println("<h1><div>我的第一个servlet</dic></h1>"); out.println("<span>xxxxxxxxx</span>"); out.flush(); out.close(); } /** * * 响应post请求方式 * 方法名:doPost * 创建人:xrzhang * @param req * @param resp * @throws ServletException * @throws IOException void * @exception * @since 1.0.0 */ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("I AM DOPOST"); } /** * * 注销servlet实例 * 方法名:destroy * 创建人:xrzhang * @exception * @since 1.0.0 */ public void destroy() { System.out.println("I AM destory"); } /** * * servlet初始化方法 * 方法名:init */ public void init() throws ServletException { System.out.println("I AM init"); } /** * 第一个测试的servlet类 * 方法名:main */ public static void main(String[] args) { } }
RebuildServlet.java
package sch.cauc.study.sysmanage; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * * RebuildServlet * 创建人:xrzhang * @version 1.0.0 * */ public class RebuildServlet extends HttpServlet{ private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(" I AM DOGET METHOD "); System.out.println(" I AM DOGET METHOD "); System.out.println("servlet相对路径:"+request.getRequestURI()); System.out.println("servlet绝对路径:"+request.getRequestURL()); System.out.println("工程名"+request.getContextPath()); System.out.println("客户端IP地址:"+request.getRemoteAddr()); System.out.println("服务器IP地址"+request.getRemoteHost()); //获取浏览器输出流 response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<h1><div>我的第一个Servlet应用程序!!!</div></h1>"); out.println("<span>xxxxxxxxxxxxx</span>"); out.flush(); out.close(); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println(" I AM DOGET METHOD "); } public void destroy() { System.out.println(" I AM DESTORY METHOD "); } public void init() throws ServletException { System.out.println(" I AM init METHOD "); } }
TestServletOther.java
package sch.cauc.study.sysmanage; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * * TestServletOther * 创建人:xrzhang * @version 1.0.0 * */ public class TestServletOther extends HttpServlet { private static final long serialVersionUID=1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } public void destroy() { } public void init() throws ServletException { } }
LoginServlet.java
package sch.cauc.study.sysmanage; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * * * LoginServlet * 创建人:xrzhang * @version 1.0.0 * */ public class LoginServlet extends HttpServlet{ private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("I AM DOGET METHOD!"); //将所有动作引入doPost里面 doPost(req, resp); } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("I AM DOPOST METHOD!"); /* request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); 先把中文字符串转化为字节,再把字节以指定的编码组合 String userNameChange = new String(userName.getBytes("iso-8859-1"),"UTF-8"); */ req.setCharacterEncoding("UTF-8"); String userName=req.getParameter("userName"); String password=req.getParameter("password"); resp.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); PrintWriter out =resp.getWriter(); out.print("<h1>用户名为:"+userName+"</h1>"); out.print("<h1>密码为:"+password+"</h1>"); out.flush(); out.close(); } public void destroy() { System.out.println("I AM DESTORY METHOD!"); } public void init() throws ServletException { System.out.println("I AM INIT METHOD!"); } }
CharacterEncodingFilter.java
package sch.cauc.study.sysmanage.Filter; 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 CharacterEncodingFilter implements Filter{ private FilterConfig filterConfig; public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获取filter初始化的参数值 String encoding =filterConfig.getInitParameter("encoding"); if(null!=encoding&&!encoding.equals("")){ request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); response.setContentType("text/html;charset="+encoding); } System.out.println("我们进入了字符编码转化的过滤器"); //把请求和响应继续带给下一个filter,如果没有下一个filter就进入请求的servlet(下一步) chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { this.filterConfig=config; } }
TestFilter1.java
package sch.cauc.study.sysmanage.Filter; 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 TestFilter1 implements Filter{ private FilterConfig filterConfig ; public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("我们进入了TestFilter1的过滤器"); //把请求和响应继续带个下一个filter,如果没有下一个filter就进入请求的servlet(下一步) chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { this.filterConfig = config; } }