飞道的博客

Servet学习笔记

381人阅读  评论(0)

注册 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

参考

Cookie

参考
首先cookie是EL表达式的内置对象可以直接拿来使用

${cookie.name}将获得对应cookie的对象,比如我们用jsp将一段cookie发送给客户端。

Cookie cookie = new Cookie(“username”, “Username in cookie”);
response.addCookie(cookie);

创建一个名称为username,值为"Username in cookie"的Cookie对象,然后发送给客户端。

然后我们就可以使用 c o o k i e . u s e r n a m e c o o k i e {cookie.username}获得这个cookie了, {cookie.username.name}获得cookie名称–“username”,${cookie.username.value}获得cookie值–“Username in cookie”。


转载:https://blog.csdn.net/qq_43408238/article/details/105946160
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场