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;
}
}