Servet学习笔记

注册 Servelt

两种方法
1、在web.xml中手动部署(如下所示)

      <servlet>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>com.Servlets.HelloWorld</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/com.Servlets/HelloWorld</url-pattern>
    </servlet-mapping>

2、使用注释

@WebServlet("以/开头的名字")

Servlet 的生命周期

在这里插入图片描述
基本框架

package com.Servlets;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;
    private String message;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }
    public void init(){
    	message = "Hello World";
    }
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html");
		request.setCharacterEncoding("utf-8");//防止接收乱码
		response.setCharacterEncoding("utf-8");//防止输出乱码
		PrintWriter out = response.getWriter();//生成PrintWriter 转发页面乱码
		out.println("<h1>"+message+"</h1>");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
	public void destroy() {
		
	}

}

使用 Servlet 读取表单数据

Servlet 处理表单数据,这些数据会根据不同的情况使用不同的方法自动解析:

  • getParameter():您可以调用 request.getParameter() 方法来获取表单参数的值。
  • getParameterValues():如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。
  • getParameterNames():如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

Servlet 常用对象

request

转发器

RequestDispatcher requestDispatcher=request.getRequestDispatcher("success.html"); // 转发请求

 requestDispatcher.forward(request, response);

常用方法
在这里插入图片描述

response

在这里插入图片描述

Session

在这里插入图片描述

ServletContext

在这里插入图片描述

JSP 与Servlet 之间的调用

Servlet中SmartUpload的使用

SmartUpload使用和简介
JspSmart文件上传与下载
在Servlet中需要使用另一个initialize()方法,传递三个参数,分别为ServletConfig, request和response

request和response可以直接在servlet中取得,ServletConfig通过this.getServletConfig可以取得.
所以改成

smartupload.initialize(this.getServletConfig(),request,response);

将工程部署到tomcat

参考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章