1-3servlet源码

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

}

 
 

猜你喜欢

转载自blog.csdn.net/as1072966956/article/details/79871947
今日推荐