`
沈冠军
  • 浏览: 110133 次
  • 性别: Icon_minigender_1
  • 来自: 玉林
社区版块
存档分类
最新评论

Servlet常用到的知识

阅读更多

 1.     Servlet的功能:

            Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的  Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

 

                        Servlet担任的角色示意图

2. Servlet的本质

 

        Servlet的本质是一个java类,只不过它继承了HttpServlet这个类,我们只要实现其中额一个或者几个方法就可以,它从父类继承的方法有几个:

 

3、Servlet的配置信息

由两部分组成,<servlet></servlet>部分和<servlet-mapping><servlet-mapping>部分

1<servlet></servlet>部分

    <description>sevlet的描述 </description>

    <display-name>servelt显示的名字 </display-name>

    <servlet-name>实现的servelt</servlet-name>

    <servlet-class>实现的servlet类路径 </servlet-class>

 </servlet>

2 <servlet-mapping><servlet-mapping>部分

    <servlet-mapping>

<servlet-name>实现的servelt类名 </servlet-name>

    <url-pattern>请求路径 </url-pattern>

</servlet-mapping>

执行过程:

 

 


 

注意事项:两部分中的<servlet-name>中的名字要一致,请求路径有3种,/*表示所有请求都会调用该servlet/.*表示所以以.*结尾的请求都调用它,如/.asp,则所以以.asp结尾的请求都调用该servlet,/+名字,比如,/loginServlet则请求为loginServlet时调用他。

 

4    Servlet接受客户端的请求参数

Servlet可以通过request.getParameter(String s)的方法从客户端,也就是浏览器页面得到相应的参数,其中的s必须是在form表单中某个输入框的name属性的值,其他的参数,不能用这个方法得到,这个方法返回的为一个String类型,如果需要得到int型,这调用Integer.parseInt(s)将字符转换为int ,但是前提是s

   只能包含数字,否则会报错。

5         Servlet的转发方式

 

include

表将url中的内容包含到当前的servlet输出当中,在服务器端完成,称做包含

forward

将当前requestresponse交给指定的url处理,一般称做转发请求,在服务器端完成,客户端地址栏看到的路径还是当前servlet的路径。

sendRedirect

指示客户端重新发起一次请求,第二个请求指向其参数url。一般称做重定向,客户端的地址栏将改变为url值,是由客户端发起的第二次请求。

6         getpost处理乱码问题

GETPOST方法提交的信息,tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,而这位朋友使用的正好是GET请求,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。
解决的方法有三个:

1. 
GET请求改成POST请求,然后就可以使用request.setCharacterEncoding(“GBK”)方法设置编码,并使用request.getParameter方法直接获得中文请求参数了。

2. 
不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。

String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");
3.
为了保证get数据采用UTF8编码,在server.xml中进行了如下设置

<connector port="8080" maxthreads="150" minsparethreads="25" <br="">maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>

7         运行时参数的设置

Servlet中只要有三个运行时用来保存数据的对象,他们的作用范围如下:

  

 

ServletRequest

保存的键值仅在下一request象中可以得到,常用做在转发请求时共享据;

Session

做用域是一个户会话session第一次创建直到Session因超时或客关闭之前,一直存在;Session常用做存入某个象,常用来保存登录的用户名,以便用来欢迎用户的登陆

servletContext

代表了servlet境的,只要某web用在启动中,这个对象就一直有效,所以据存活范时间)最大的一;常用存放Web用程序全局性的据,例如登器在线据,可以保存到这个对象中。

 

     一般设置公共信息时都是保存在servletContext中,通过调用setAttribute("键名", 键值),需要时调用,键值=getAttribute(“键值”),得到键值,不需要时,可以通过removeAttribute(“键值”),比如退出登陆时,就要把键值移除。

 

  • 大小: 4.1 KB
  • 大小: 8.6 KB
  • 大小: 21.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics