Servlet的配置(一)

来源:互联网 发布:sfp端口是什么 编辑:程序博客网 时间:2024/05/29 19:56

Servlet的基本配置包括 Servlet的名字,实现类,初始化参数和启动装入优先级的设置。

1:Servlet的名字
<servlet-name>HelloWorld</servlet-name>来定义com.meession.config.HelloWorle的名字

Servlet类:指的是实现该Servlet的具体文件
分为两种情况:
当是Servlet文件时,用标签<servelt_class>表示
当是JSP文件时,用标签<jsp-file>来表示,例如现有Register.jsp文件,通过访问它来完成用户注册,要配置该JSP文件,可以用<jsp-file>Register.jsp</jsp-file>来定义RegisterServlet,它表明RegisterServlet是通过Register.jsp文件实现的。

描述:
<description>这是个HelloWolr Servlet</description>

显示名:
显示名用来指定某Servlet在IDE工具中显示的名字,IDE工具可能会用此名字来标识此Web应用
<display-name>WebApplication</display-name>

示例:

<servlet> <description>该Servlet实现全局配置</description> <servlet-name>GlobalConfigServlet</servlet-name> <display-name>GlobalConfig Reloading Servlet</display-name><!--Servlet的现实名--> <servlet-class>com.example.config.GlobalConfigServlet</servlet-class><!--实现类的完整路径--> </servlet> <servlet-mapping> <servlet-name>GlobalConfigServlet</servlet-name> <url-pattern>/GlobalConfig</url-pattern><!--访问该Servlet的 --> </servlet-mapping>

Servlet的初始化参数
是指在其配置文件中定义好的参数,使用它们可以方便参数的更改,并可保证Servlet的通用性,初始化参数在配置文件中的格式如下:

<init-param>   <param-name>这里设置的参数的名字</param-name>   <param-value>这里设置的参数的值</param-value></init-param>

例如JDBC在web.xml中的配置(驱动程序,连接数据库的URL,用户名和密码,最好把他们放在web.xml中,在该Servlet的实现类中可以通过特定的方法来获取这些参数的值)

<servlet>  <sevlet-name>JDBCServlet</servlet-name>  <servlet-class>com.examp.db.JDBCServlet</servlet-class>  <init-param>定义驱动器参数  <param-name>Driver</param-name>   参数的名字 <param-value>com.mysql.jdbc.Drvier</param-value>  参数的值</init-param><init-param>  定义路径参数  <param-name>Url</param-name>  <param-value>jdbc:mysql://localhost:3306/ch7</param-value></init-param><init-param>  定义登录名参数  <param-name>Username</param-name>  <param-value>root</param-value></init-param><init-param>  定义登录密码参数  <param-name>Password</param-name>  <param-value>root</param-value></init-param></servlet>

同一用户的不同页面共享数据:
四种方法:
1. cookie技术
2.sendRedirect()跳转
3.隐藏表单提交(form)
4.session技术

什么是cookie?
服务器在客户端保存用户的信息,比如登录名、密码……就是cookie

这些信息就像是小甜饼一样,数据量并不大,服务器端在需要的时候可以从客户端读取
cookie可以用来做什么?
1.保存用户名、密码,在一定时间不用重新登录
2.记录用户访问网站的喜好,比如有无背景音乐、网页的背景色是什么
3.网站的个性化,比如定制网站的服务、内容
COOKIE使用?
1.cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String
2.如何创建一个cookie(在服务器端创建的)
Cookie c=new Cookie(String name, String val);
3.如何将一个cookie添加到客户端
response.addCookie(c);
4。如何读取cookie(从客户端读到服务器)
request.getCookie();

COOKIE其它说明?
1.可以通过IE——工具——internet选项——隐私——高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的,因此安全性不高
3.cookie信息的生命周期可以在创建时设置(比如30s),从创建那一时刻起,就开始计时,到时该cookie的信息就无效了
sendRedirect()方法?
通过该方法可以将一个页面的信息传送给另外的页面,比如:
sendRedirect(“welcome?uname=aaa”);

优点:传送信息的速度比较快
缺点:它只能传送字符串,而不能传送一个对象
sendRedirect(“welcome?uname=aaa”);

注意点:
1.welcome代表你要跳转的那个servlet的url
2.servlet url名和变量之间有个?
3.如要传递两个以上的值,它们之间要用符号&分开,比如sendRedirect(“welcome?uname=aaa&passwd=123”);
4.如果传递的是中文,那你将得到乱码,需要处理一下res.setContentType(“text/html,charset=gbk”);
隐藏表单?
这是最常见的一种方式,也是最简单的,但有时该技巧非常管用,形如:

<form action=login>    <input type=hidden name=a value=b></form>

通过隐藏表单,我们也可以将一个页面信息,传递给另外的页面。

什么是session?
当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占。这个空间就是session空间,该空间中的数据默认存在时间为30min,你也可以修改该值。
session可以用来做什么?
1.网上商城中的购物车
2.保存登陆用户的信息
3.将某些数据放入到session中,供同一用户的各个方面使用
4.防止用户非法登陆到某个页面
……

如何理解session?
可以把session看做一张表,这张表有两列,而表有多少行理论上没有限制,每一行就是session的一个属性。每个属性包含有两个部分,一个是该属性的名字String,另外一个是它的值Object。
如何使用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);
5.注销session中的内容(比较安全的一种方式)
ht.setMaxInactiveInterval(0);

session的注意事项:
1.session中属性存在的默认时间是30min,你也可修改它存在的时间:(a)修改web.xml (b)在程序中修改
2.上面说的这个30min指的是用户的发呆时间,而不是累计时间
3.当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的session id,并以此来区分不同的浏览器(即客户端)
4.因为session的各个属性要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用

Cookie VS Session:
1.存在的位置
cookie保存在客户端,session保存在服务器端
2.安全性
比较而言,cookie的安全性比session要弱
3.网络传输量
cookie通过网络在客户端与服务器端传输,而session保存在服务器端,不需要传输

参考博客:
http://blog.csdn.net/zhoucheng05_13/article/details/53350156