Java之servlet一

版权声明: https://blog.csdn.net/dadan1314/article/details/83758519

三种实现方式

  • 实现Servlet
  • 继承GenericServlet
  • 继承HttpServlet

 实现Servlet

void init(ServletConfig config)

ServletConfig getServletConfig()

void service( ServletRequest req, ServletResponse res)

String getServletInfo()

void destory()

继承GenericServlet

void service(ServletRequest req,ServletResponse res)

继承HttpServlet

void doPost(HttpServletRequest request, HttpServletResponse response)

void doGet(HttpServletRequest request, HttpServletResponse response)

部署

WEB_INF/web.xml ---> web-app节点下

<servlet>
    <servlet-name>ServletDemo1</servlet-name>
    <servlet-class>gacl.servlet.test.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletDemo1</servlet-name>
    <url-pattern>/test/test1</url-pattern>
</servlet-mapping>

 例子

以实现Servlet为例

 一 . 编写MyRawServlet.java文件

package com.zhou.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// public不能忘记 throws非throw  destroy非destory
public class MyRawServlet implements Servlet{
	
	public void init(ServletConfig config)
		throws ServletException{
		
	}
	public void destroy(){
		
	}
	public ServletConfig getServletConfig(){
		return null;
	}
	public String getServletInfo(){
		return null;
	}
	public void service(ServletRequest req, ServletResponse res)
		throws ServletException, IOException{
		System.out.println("MyRawServlet");
		res.getWriter().println("<h1>MyRawServlet</h1>");
	}
}

二. 编译javac -d . MyRawServlet.java;

    生成com文件夹,将来放到WEB-INF/classes目录下(注:是WEB-INF不是WEB_INF)

   PS:若提示程序包javax.servlet不存在,则在tomcat服务器目录下找到lib目录下的servlet-api.jar文件,放在与java文件一样的目录下,切换到该目录,执行javac -classpath ./servlet-api.jar -d . MyHttpServlet.java

三. 在tomcat服务器目录下的webapps创建一个web应用,如zhoutest;

四. 在zhoutest目录下创建WEB-INF目录,并在WEB_INF目录下创建classes文件夹;

五. 编写web.xml放在WEB-INF目录下,web.xml内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  version="3.1"
  metadata-complete="true">
  
	<servlet>
		<servlet-name>MyRawServlet</servlet-name>
		<servlet-class>com.zhou.servlet.MyRawServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>MyRawServlet</servlet-name>
		<url-pattern>/MyRawServlet</url-pattern>
	</servlet-mapping>
</web-app>

六. 启动tomcat服务器,输入 localhost:8080/zhoutest/MyRawServlet ,结果如下:

 附录

继承GenericServlet方式的MyGenericServlet.java如下:(其他与实现Servlet一致)

package com.zhou.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyGenericServlet extends GenericServlet{
	public void service(ServletRequest req,ServletResponse res)
		throws ServletException, IOException{
			System.out.println("GenericServlet");
			res.getWriter().println("<h1>GenericServlet</h1>");
		}
}

继承HttpServlet方式的MyHttpServlet.java如下: 

package com.zhou.servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyHttpServlet extends HttpServlet{
	public void doGet(HttpServletRequest req, HttpServletResponse res)
		throws ServletException , IOException{
		System.out.println("MyHttpServlet");
		res.getWriter().println("<h1>MyHttpServlet</h1>");
	}
	public void doPost(HttpServletRequest req, HttpServletResponse res)
		throws ServletException, IOException{
			doGet(req,res);
		}
}

猜你喜欢

转载自blog.csdn.net/dadan1314/article/details/83758519