servlet学习笔记
来源:互联网 发布:哪个网领淘宝优惠券 编辑:程序博客网 时间:2024/06/05 06:41
开发servlet三种方法:
1、实现servlet接口
2、继承GenericServlet
3、继承HttpServlet
webapps下建立自己的工程目录
然后再下建立WEB-INF
在WEB-INF下面建立lib,classes文件夹
web.xml文件
lib放入要用到的库 classes类
开发servlet引入servlet-api.jar
a、继承servlet
public void init(ServletConfig parm1) throws ServletException
//该函数用于初始化该Servlet(类似于类的构造函数)
//该函数只会被调用一次(当用户第一次访问该Servlet时被调用)
public void service(ServletRequest req,ServletResponse res)
//这个函数用于处理业务逻辑
//程序员应该把业务逻辑代码写在这里。该函数被调用多次
//当用户每访问一次servlet都会调用。
//req:用户获得客户端(浏览器)的信息
//res:用于向客户端浏览器)返回信息
//从res中得到PringWriter
PrinterWriter pw=res.getWriter();
pw.println("hello world");向浏览器信息。
serlvet开发流程 servlet的生命周期Servlet 部署在容器里(我们使用的是tomcat,也可是别的比如jboss,
weblogic..),它的生命周期由容器来管理:
Servlet的生命周期分为以下几个阶段:
1 装载servlet,由相应的容器来完成。
2. 创建一个Servlet实例。
3. 调用servlet的init()方法,该方法只会在第一次访问该servlet时被
调用一次。
4. 服务 :调用servlet的service()方法,一般业务逻辑在这里处理。
该方法在访问该servlet时,都会被调用。
5. 销毁:调用servlet的destory()方法,销毁该servlet实例. 该方法在
以下情况被调用:
a: tomcat重新启动 b: reload该Webapp c: 重新启动电脑
web.xml配置
<servlet>
<!-- Servlet名字,名字可以随意-->
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<!-- Servlet类名,用包名+类名,不要后缀-->
<servlet-class>org.apache.jsp.index_jsp</servlet-class>
</servlet>
<servlet-mapping>
<!-- Servlet名字,名字可以随意-->
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<!-- Servlet访问名称,名字可以随意定-->
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
b、继承GenericServlet这个类
javax.servlet.GenericServlet
重写service方法即可
public class HeeloGen extends GenericServlet{
//重写service方法
public void service(ServletRequest req,ServletResponse rep)
{
try{
PrinterWriter pw=res.getWriter();
pw.println("hello world!GenericServlet");
}catch(Exception ex)
{
es.printStackTrace();}
}
}
Reload重新加载
c、通过继承HttpServlet 引入的包是javax.servlet.http.*
需要重写doGet、doPost方法。
表单提交数据get请求和post请求
1、从安全性看get<post get提交的数据会在浏览器的地址上显示
2、从提交的内容大小看get<post get提交的数据不能大于2K,而post提交的数
据理论上是不受限制的,但实际编程中不要大于64K
3、从请求响应速度看:get>post get要求服务器立即处理请求,而post请求可
能形成一个队列请求。
例子:
package com.blue;
import javax.servlet.http.*;
import java.io.*;
public class HelloHttp extends HttpServlet{
//处理get请求
//req:用于获得客户端(浏览器)的信息
//res:用户向客户端(浏览器)返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
//业务处理逻辑
try{PrintWriter pw=res.getWriter();
pw.print("hello!");}catch(Exception ex)
{
ex.printStackTrace();}
}
//处理post请求
//req:用于获得客户端(浏览器)的信息
//res:用户向客户端(浏览器)返回信息
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
this.doGet(req,res);//调用doGet方法
}
}
简单的用户登网站(Servlet版本世纪)
字符编码方式设置,解决中文乱码:
res.setContentType("text/html:charset=gbk");
//接收用户客户端表单信息
String u=req.getParameter("name");
String p=req.getParameter("password");
//name password是表单控件的名字
//页面跳转
res.sendRedirect("");
//跳转到指定页面,名字写要到的servlet的那个URL地址
跳转的时候可以带参数传递用?号连接,连接多个参数用&号隔开
使用Session
1.得到session
HttpSession hs=request.getSession(true);
2.向session添加属性
hs.setAttribute(String name,Object val);
3.从session得到某个属性
String name=hs.getAttribute(String name);
4.从session删除调某个属性
hs.removeAttribute(String name);
注意事项:
1、session中属性存在的默认时间是30min,你也可
修改它存在时间:a修改web.xml(session-timeout中修改) b在程序上修改
2、上面说的这个30min指的是用户在发呆时间,而不是
累计时间。
3、当某个浏览器访问网站时,服务器会给浏览器分配一个
唯一的session id,并以此来区分不同的浏览器(客户端)
4、因为session的各个属性要占用服务器的内存,因此软件
公司都是在迫不得已的情况下,才使用。
修改session存中时间:hs.setMaxInactiveInterval(20);//20秒 为负数-1永不过期,为0清空session实例
getId()得到session的唯一ID号
建立session
建立session对象,用setAttribute方法得到。
得到session
建立session对象,用getAttribute方法得到。
res.setCharacterEncoding("gbk");//解决中文乱码
- Servlet学习笔记 Servlet原理
- 《Servlet学习笔记》Servlet 简介
- Servlet学习笔记
- servlet学习笔记
- Java Servlet学习笔记
- Servlet学习笔记
- servlet 学习笔记(1)
- servlet 学习笔记(2)
- Servlet学习笔记
- Servlet学习笔记
- JSP/Servlet学习笔记
- servlet学习笔记
- Servlet学习笔记
- SERVLET学习笔记
- servlet学习笔记
- Servlet 学习笔记
- servlet学习笔记
- servlet学习笔记
- Oracle中的存储层次体系
- 用递归实现字符串操作标准库函数
- 小雨来时
- Tao.OpenGL
- DataStage Online Library
- servlet学习笔记
- 闲谈 Web 图片服务器
- Oracle系统体系结构
- 一、二行代码解决全部网页木马
- 10个方法提高你的编程生产力
- 动态设置ODBC数据源(修改及新建)
- Struts,Hibernate,Spring经典面试题
- indexof 和 indexofany有什么区别
- java.lang.NoSuchFieldError: EMPTY_LIST,EMPTY_MAP错误的解决方法