servlet 复习

本文介绍了Java Servlet的基础概念,包括Servlet与CGI的区别、Servlet的基本使用方法及部署过程,并通过实例演示了如何创建一个简单的Servlet应用程序。此外,还探讨了Servlet的生命周期及其各个阶段的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.servlet介绍
java servlet 是一种使用java编写的CGI的程序
CGI:通用网关接口。其与传统CGI优势:多线程,性能高;
使用out.println() 显示html
servlet本身也是java类,所以必须存放在WEB-INF/classes
jsp功能与servlet一致(先有servlet,再有jsp),也就意味着servlet程序同样可以被外部引用访问,这就必须有一个地址,可以通过WEB映射;
修改web.xml可以配置地址


2.来一个HelloWorld
2.1 纯手工打造
文件结构(HelloWorld)
webapps下建一个文件夹servletTest;servletTest建一个文件夹WEB-INF;WEB-INF建一个文件web.xml和一个文件夹classes;classes下把编译好的类ServletHelloWorld.class放入;
其中web.xml写:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>Test</servlet-name> <servlet-class>ServletHello</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
ServletHelloWorld.class的java文件为

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletHello extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<head>"); out.println("</head>"); out.println("<body>"); out.println("<center><h1>Hello World!!</h1></center>"); out.println("</body>"); out.println("</html>"); } }



jdk 提供的是java se的包,而java ee包不在java se中,所以一般在编译ServletHelloWorld.java 时会出现找不到类的错误。需要如下配置:
配置方法1:
set classpath=C:/Program Files/Apache Software Foundation/Tomcat 5.5/common/lib/servlet-api.jar
javac ServletHelloWorld.java
配置方法2(比较常用):
把Tomcat 5.5/common/lib/servlet-api.jar粘贴到C:/Program Files/Java/jdk1.6.0_21/jre/lib/ext

查看:
在浏览器中输入http://localhost:8081/servletTest/hello 回车可以看到效果
其中localhost:8081是Tomcat;servletTest是我建的项目名;hello是web.xml中<url-pattern>中的内容;(也就是说可以把WEB-INF和classes当成透明不存在)

2.2 使用万能的eclipse
file->new->dynamic web project
配好相应的Tomcat 写好java文件,和web.xml 然后 右键项目 run as servlet 再输入正确的url 于是helloworld 出来了~

3 生命周期
在webapps中建立一个文件夹ServletLC
文件夹ServletLC下建一个文件夹WEB-INF和文件lc.jsp
其中lc.jsp如下

<%@ page contentType="text/html;charset=GBK" %> <html> <head> <title>Servlet LifeCycle</title> </head> <body> <center> <form action="/ServletLC/LifeCycle" name="form"> <input type="submit" value="提交"> </form> </center> </body> </html>
在WEB-INF下建立classes文件夹和web.xml
其中web.xml如下配置:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <servlet-name>Test</servlet-name> <servlet-class>ServletLC</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test</servlet-name> <url-pattern>/LifeCycle</url-pattern> </servlet-mapping> </web-app>
classes下放入已经编译好的.class文件,其.java源文件为:

import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletLC extends HttpServlet { private ServletConfig config; public void init(ServletConfig config) throws ServletException { super.init(config); this.config=config; System.out.println("-----init-----"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); System.out.println("-----doGet-----"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("-----doPost-----"); } public void destroy() { System.out.println("-----destroy-----"); } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值