java销毁servlet_java_servlet

本文介绍了Java Servlet的概念、作用及编写方式,重点讲解了Servlet的生命周期,包括单例特性、初始化、服务与销毁过程。此外,还详细阐述了doGet()和doPost()方法的应用场景,以及如何在Servlet中接收和处理客户端参数。最后提到了解决中文乱码问题、Servlet内部跳转和外部重定向,以及会话追踪技术如session和cookie。
摘要由CSDN通过智能技术生成

1.什么是Servlet

servlet就是java里面一种类,只不过这种java类有一些特殊的应用,称呼他为servlet

2.servlet的作用

可以让浏览器直接通过一个路径取访问。(一般Java类做不到这一点)

3.如何写一个servlet类

3.1.三种实现方式:

a.实现接口:javax.servlet.Servlet

b.继承一个抽象类:javax.servlet.GenericServlet

c.继承一个抽象类:javax.servlet.http.HttpServlet(常用)

注意:

Servlet中有五个抽象方法,最重要的就是service(ServletRequest arg0,ServletResponse arg1)

GenericServlet实现了其他四个方法,并添加了一些新的方法,但service() 方法没有实现

HttpService中无抽象方法,将service()方法转为doGet()方法和doPost()方法。所以在HttpServlet中调用doGet和doPost本质上都是在调用service方法,就是更加细化而已。

doGet()和doPost()方法中的参数也由原先的ServletResquest和ServletResponse变为HttpServletResquest和HttpServletResponse

4.servlet的生命周期

i. servlet是单例:在整个web项目运行期间,只会new一个对象。并且是当第一次访问时创建(new)

ii. servlet对象的创建及销毁(服务器来做的):

a.默认情况下,第一次被访问的时候tomcat创建servlet对象(调用无参构造器)

b.tomcat调用init(ServletConfig config)方法 ,在servlet对象实例化之后,tomcat服务器会立马调用这个方法给servlet的实例进行初始化工作。

c.客户端访问的时候,tomcat会调用service(ServletRequest req,ServletResponse res)方法

d.在销毁servlet对象的时候会tomcat调用destroy()方法.

iii.如果想让servlet在服务器(tomcat或其他)开启时就创建,可以在web.xml文件中配置

LifeServletTest

全限定名(eg:com.sun.Servlet)

1

中的数字 越小表示当服务器启动时就越先被创建

5.关于HttpServlet中的doGet()和doPost()方法

(其实可以记post的,因为常用的提交方式就是dopost和doget)

get方式:(数据拼接在url请求后,格式为:资源名?name=sss&passwd=111&age=22)

a.浏览器中输入地址(URL)然后回车

b.超链接

c.页面中引入的css样式文件

d.页面中引入的js的文件(javascript)

           e.a.jpg

f.form表单中method="get"

g.ajax中可以设置异步提交请求的方式为get

f.其他

post方式:(数据放在http请求的请求体内)

a.form表单中method=“post"

b.ajax中设置异步提交请求的方式为post

c.其他

7.Servlet中接收客户端传过来的参数

i.格式

参数名称=参数值

ii.获取方式

String value=request.getParameter("key");

(这种传参 参数的类型都是字符串)

如果客户端中form表单用了多选框,就用数据接收

String [] values=requeset.getParameter("arr");

8.中文乱码问题

a.需要修改tomcat中的配置文件,然后重新启动tomcat服务器.

server.xml:在这个文件中找到修改端口号的那个标签,然后加入一个新的属性URIEncoding="UTF-8",或者是写GBK、GB2312

例如:

b.在方法第一句加上req.setCharacterEncoding("GBK");//UTF-8

c.浏览器端乱码时(写在方法的第一第二行)

resp.setCharacterEncoding("GBK");

resp.setContentType("text/html;charset=GBK");

9.servlet跳转

跳转分为两种形式(服务器内部跳转,和客户端重定向)

a.服务器内部跳转(用到的是request对象)

i.通过request对象,获取跳转对象---》RequestDispatcher rq=request.getRequestDispatcher(page);

ii.跳转---》rq.forward(request,response);

(一般简写:request.getRequestDispatcher(page).forward(req,res);)

b.客户端重定向(用到的时response对象)

response.sendRedirece(page);//一般不用

b4a6098b3fb52b29c265413b7e0aaba3.png

注意:http请求都是无定向的,request存放的信息只有单次请求有效,所以重定向无法携带数据

10.前端如何找到Servlet

a.在web.xml中写配置

随便起,跟下边servlet-mappin中的一样就行

跟上边一样

/资源名(前端通过这个名找到后端哒)

b.在类上写注解@WebServlet("/资源名")

eg:@WebServlet("/Test")

public class Test extends HttpServlet {...}

emmmmm....一般都是用eclipse直接新建Servlet,上边自己有,就不用自己配了

11.路径问题

12.三个容器---------request、session、application

13.会话追踪,将http无定向协议实现追踪技术——session、cookie

14.URL重写

15.Filter(过滤器)

16.Listener(监听器)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值