当前位置: 代码迷 >> JavaScript >> JSP中学习Servlet小结
  详细解决方案

JSP中学习Servlet小结

热度:162   发布时间:2012-09-24 13:49:41.0
JSP中学习Servlet总结
1:编写Servlet要注意的问题?

   A:要导入javax.servlet;javax.servlet.http;java.io;
   B:如果编写的servlet与Http无关,则该Servlet类要继承GenericServlet类,反之则继承HttpServlet类。
   C:Servlet是在服务器端执行,且是动态的生成Html脚本。
   D:Servlet的生命周期:
? Server创建一个Servlet的实例
? Server调用Servlet的init()方法
? 一个客户端的请求到达Server
? Server创建一个请求对象
? Server创建一个响应对象
? Server激活Servlet的service()方法,传递请求和响应对象作为参数
? Service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息,service()方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员自己开发的新的方法
? 最后自动调用Destroy()方法来销毁对象。

E:如果跳转页面的时候采用的是post方式,并且是通过Servlet进行访问的,则要通过调用Servlet的doPost方法,反之则通过调用doGet方法。

2:配置Servlet

A:将Servlet的Jar包放入到工程中去,具体的目录Tomcat 5.5\common\lib,拷贝servlet-api.jar将其放入到工程\WEB-INF\lib下面。
B:对工程\WEB-INF\web.xml文件进行修改,如:
<servlet>
<servlet-name>first</servlet-name>
<servlet-class>jzh.servlet.first</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>first</servlet-name>
<url-pattern>/first</url-pattern>
</servlet-mapping>


3:演变的Servlet

A:不依赖与Servlet动态输出HTML了,而是通过Servlet输出一个用户想得到的数据。

4:获得web.xml文件中Servlet相关信息。

A:先把要设置的参数写入到web.xml中,如:
<servlet>
<servlet-name>Logined</servlet-name>
<servlet-class>jzh.servlet.Logined</servlet-class>
<init-param>
<param-name>filepath</param-name>
<param-value>E:\DOCUMENT\temp\关于对发送通.doc</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Logined</servlet-name>
<url-pattern>/Logined</url-pattern>
</servlet-mapping>
B:编写Servlet类时,通过ServletConfig. getInitParameter("filepath")获得该参数值。也可以通过getServletConfig. getInitParameter("filepath")获得参数值。

5:Servlet之间相互操作。
A:RequestDispatcher rd = getServletConfig().getServletContext().getRequestDispatcher("LoginSucess");
rd.forward(request,response);
B:通过调用getServletConfig()获得web.xml配置文件中相关Servlet的相关信息。获得Servlet信息后,通过调用getServletContext()方法获得具体的Servlet配置信息。再通过调用getRequestDispatcher(“指定的Servlet名称”)。

6:Servlet中获得session。
HttpServletRequest request
HttpSession hs = request.getSession();

7:访问servlet
在访问servlet时,尽量在action中加上这个应用的名称(request.getContextPath())
  相关解决方案