申明:本笔记参考视频《尚学堂Servlet笔记》
一、 配置
1、 运行Tomcat需要配置环境变量JAVA_HOME
2、 更改端口,conf/server.xml 中Connector port
3、 当项目(Web-Info)发生变化时使Tomcat自动加载,conf/context.xml中的Context中加上属性,reloadable =”true”
4、 相对路径:不是以http://或者/开头的路径。对于绝对路径,在html中/代表的是http://localhost:8080/,而Servlet配置文件中,/代表http://localhost:8080/app/ .
5、 删除使用相同端口的进程
netstart –a 查处端口号是否被使用
netstart –o 查找端口好对应的线程号
在进程管理器中将对应的进程杀死
二、 Servlet的乱码解决
1、 向前台写中文,需要在getWriter()前调用resp.setContentType(“text/html;charset=GBK”);或者调用resq.setEncoding(“GBK”);
2、 对于post方式,需要从前台获取中文,需要调用req的setEncoding()方法。
3、 对于get方式,需要在server.xml的Connector中加入属性,URIEncoding=”GBK”。
4、 向浏览器的地址栏中写入中文,需要转码,如userName=URLEncoder(username, ”GB18030”);
乱码场合:
1、 默认情况下(什么都不写),通过get方式(get表单和链接),中文乱码,通过form方式,能得到中文。
2、 加上<%@ page contentType=”text/html;charset=GBK”%>,post方式得到乱码,get方式得到中文。
如果在servlet中,则加入resp.setContentType(“text/html;charset=gbk”)
3、 在加上request.setCharacterEncoding(“gbk”)都能得到中文。
4、 对于场合,<jsp:param name=”user” vlue=”<%=s%>”>,url地址中包含中文参数,解决办法为<%request.setCharacterEncoding(“gbk”)%>
三、 Servlet生命周期
1、 加载
加载时间有以下三种情况:
(1) 如果某个Servelt配置了自动载入选项,则在启动服务器时自动载入
(2) 如果没有,则在服务器启动后,客户机首次向Servlet发出请求时
(3) 重新加载Servlet时
2、 实例化
客户机第一次想Servlet发出请求时实例化相应的Servlet。
3、 init
实例化之后,自动调用init方法。
4、 service(doGet、doPost)
以多线程的方式来调用service方法,客户端没发出一个请求,容器则为其分配一个限制的线程来调用service方法,由service方法根据请求的方式来调用doGet和doPost方法。因为是以多线程的范式访问,所以最好不要在servlet中设置成员变量。
5、 destroy
关闭web应用程序、或者重新加载Servlet时,调用destroy方法。
四、 获取Servlet中参数的方法
1、 在Servlet中设置参数
<servlet>
<servlet-name></ servlet-name >
<servlet-class></ servlet-class >
<init-parameter>
<param-name>name</param-name>
<param-value>小王</param-value>
<param-name>name</param-name>
<param-value>小王</param-value>
</init-parameter>
</servlet>
2、 根据param-name获取某个参数
String name=this.getServletConfig().getInitParameter(“name”);
如果web.xml的编码方式为ios8859-1,则可以手工将其转化为gbk
name=new String(s.getBytes(“ios8859-1”,”GBK”));
3、 获取Servlet相关信息
String servletName=this.getServletConfig().getServeltName();
4、 获取Servlet所有Init参数
Enumeration parames=this.getServletConfig().getInitParameters();
while(parames.hasMoreElements()){
String name=parames.nextElement().toString();
…
}
五、 GenericServlet类的两个Init方法
1、 init(ServletConfig( config)
init()
2、 Tomcat调用的是第一个init方法,在第一个init方法中,初始化config,然后再调用第二个init方法。所以重载父类的init方法是,最佳方法是重载第二个init方法。如果重在第一个init方法,则需要调用父类的第一个init方法,以初始化config。
六、 获取参数
1、 对于只有一个值的form元素,可以使用req.getParameter(“name”)方法获取参数
2、 可以通过req.getParameterNames()方法获取所有form表单中的名字,返回类型为Enumeration。
3、 如果有多个相同名字的form元素,可以通过方法req.getParameterVales(“name”)获取,返回类型为String[]。
4、 通过方法request.getParameterMap()方法可以获取form元素的名称和其值的map。
七、 cookie
1、 Cookie分为两种,一种属于窗口/子窗口(放在内存中),另一种属于文本(有生命周期)
2、 一个servlet/jsp设置的cookies能够被同一个路径(url)下面或者子路径下面的servlet/jsp读到,反之则不能。
3、 添加一个cookie
Cookie cookie=newCookie(cookieName,cookieValue);
response.add(cookie);
4、 得到cookie
Cookie[] cookies=request.getCookies();
5、
八、 session
1、 session常见的两种实现方式:
1) 通过在客户端的cookie中加入sessionID实现session
2) 通过url重写实现session
response.encodeUTL(request.getRequestURL.toString());
2、 在servlet中得到session
req.getSession(true);其中true表示,如果没有session实例,则创建一个。
3、 配置session的生命周期
conf/web.xml中的session的子标签session-timeout
4、
九、 application
在Servlet中对应的类为ServletContext。
十、 cookie和session的区别
1、 cookie存储在客户端,session存储在服务器端。
2、 cookie有两种类型,而session有两种实现方式。
3、 父路径下不能访问子路径的cookie,而同一个session的窗口共享一个session。
分享到:
相关推荐
jsp servlet开发总结文档 jsp Servlet总结jsp Servlet总结jsp Servlet总结
### servlet总结:深入理解Web开发的核心组件 #### 一、Servlet概述 Servlet是一种用Java语言编写的Web组件,运行在Web服务器端,主要用于扩展Web服务器的功能,产生动态网页输出。Servlet自诞生以来,逐渐取代了...
servlet 总结 一、HTML 基础 HTML(HyperText Markup Language)是用于创建网页的标记语言。它由一系列的元素组成,每个元素都有其特定的功能。HTML 的基本结构由 `<html>`、`<head>` 和 `<body>` 组成,分别对应...
- **请求转发**:在`Servlet总结02——请求转发.docx`中详细介绍了,请求转发是服务器端内部的跳转,使用`RequestDispatcher`的`forward()`方法,转发后,URL不会改变,多个资源可以共享同一个请求对象。...
servlet总结 都是基础和重要的知识点 大学软件专业的上课资料 想巩固基础知识请进
Tomcat开发jsp与servlet总结参考.pdf
总结来说,开发JSP与Servlet的过程涉及多个方面,包括编写代码、配置部署描述文件、编译、部署和测试,最终通过服务器的配置来访问Web应用。Tomcat作为中间件,提供了运行这些应用所需的环境和框架支持。在开发过程...
【Servlet 概述】 Servlet 是 JavaEE(Java Platform, Enterprise Edition)中的核心组件,主要用于处理 Web 应用中的服务器端任务。它与 HTTP 协议紧密相关,能够处理 HTTP 请求的各个方面,包括接收请求、处理...
### Servlet核心知识点详解 #### 一、Servlet简介与工作原理 Servlet是一种运行在服务器端的Java应用程序,专门用于处理客户端的HTTP请求并生成响应。它作为Web应用的重要组成部分,能够提供动态网页服务,实现了...
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Java web 开发,servlet ppt 教学用,自学用
JSP & Servlet 技术总结 JSP技术总结 2 1. JSP页面元素构成 2 2. JSP脚本元素 2 3. 注释 2 4. JSP指令 2 5. JSP动作元素 3 6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向...
自己总结的servlet与jsp部分 希望对大家有所帮助
黑马 程序员-方立勋老师-javaWeb开发-03-Web开发入门和 04-Servlet开发和ServletConfig和ServletContex对象 知识总结记录
### JavaWeb-Servlet学习与总结 #### 一、Servlet简介 Servlet是一种运行在服务器端的小程序,主要用于处理客户端发送的HTTP请求并返回响应结果。它作为Java Web开发的基础技术之一,广泛应用于各种Web应用程序中...
jsp servlet面试题总结 jsp 中九大内置对象为: 1. request 请求对象,类型 javax.servlet.ServletRequest,作用域 Request 2. response 响应对象,类型 javax.servlet.SrvletResponse,作用域 Page 3. ...
总结来说,`servlet.jar.zip`是用于开发基于Java Servlet的web应用的重要工具,其中的`servlet.jar`提供了Servlet API,使得开发者能够编写与HTTP服务器交互的Java代码,而`license.txt`则需仔细阅读,遵循其中的...
总结一下,Java EE的Servlet API是Web开发的关键组件,它定义了处理HTTP请求的规范,使得开发者能够用Java语言构建动态Web应用。通过`servlet-api.jar`库,我们可以实现Servlet和Filter,参与到HTTP请求的生命周期中...