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

參考

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