当前位置: 首页 > news >正文

网站w3c标准温州网站优化排名

网站w3c标准,温州网站优化排名,个人网站做什么内容,seo包年推广Servlet处理请求过程 B/S请求响应模型 Servlet介绍 JSP是Servlet的一个成功应用,其子集。 JSP页面负责前台用户界面,JavaBean负责后台数据处理,一般的Web应用采用JSPJavaBean就可以设计得很好了。 JSPServletJavaBean是MVC Servlet的核心…

 Servlet处理请求过程

B/S请求响应模型

 Servlet介绍

JSP是Servlet的一个成功应用,其子集。

JSP页面负责前台用户界面,JavaBean负责后台数据处理,一般的Web应用采用JSP+JavaBean就可以设计得很好了。

JSP+Servlet+JavaBean是MVC

Servlet的核心思想:在服务器端创建能响应用户请求的对象,即Servlet对象。

Servlet类:属于javax.servlet.http包中的HttpServlet类的子类。

Servlet 与 JSP 内置对象

获得内置对象的方法

获得 out 对象

JSP 中的 out 对象,一般可以使用 doXXX 方法中的 response 参数获得

默认情况下,out 对象是无法打印中文

解决方法:response.setContentType("text/html;charset=gb2312");

获得 request 和 response 对象

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//将 request 参数当成 request 对象使用

//将 response 参数当成 response 对象使用

获得 application 对象

   ServletContext application = this.get ServletContext();

//将 application 当成 application 对象来使用

配置环境

使用servlet的步骤:

1.配置 servlet-api.jar

2.编码 *.java

3.编译生成字节码文件 *.class

4.部署

5.调用

JDK 内置包中不包含编译servlet源文件需要HttpServlet、HttpServletRequest等类,因此,需要在环境变量中包含 servlet.jar,这个 jar 文件在 TOMCAT 安装目录的 common\lib 文件下,如果没有可以网上下载。

编辑 classpath,加入%CATALINA_HOME%\lib\servlet-api.jar

将servlet.jar文件拷贝到jdk安装目录的jdk\jre\lib\ext中

部署Servlet

Hello.java

package china.dalian;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class Hello extends HttpServlet

{  public void init(ServletConfig config) throws ServletException

     {  super.init(config); 

     }

   public void service (HttpServletRequest request, HttpServletResponse response)  throws IOException

    {  response.setContentType(“text/html;charset=gb2312”);

       PrintWriter out = reponse.getWriter();

       out.println(“<html><body>”);

       out.println(“<h2>欢迎学习servlet</h2>”);

       out.println(“</body></html>”);

    }

将生成的字节码文件如 Hello.class 保存在Tomcat服务器 WEB-INF\classes 目录下对应包名文件中,包名为  pakage china.dalian 在具体的目录为

WEB-INF\classes\china\dalian

在Web根目录下编辑 web.xml 文件,对 Servlet 文件进行配置

servlet 节:如何生成该servlet

servlet-mapping节:如何调用该servlet

Servlet与JSP的区别

       Servlet是使用Java Servlet接口(API)运行在Web应用服务器上Java程序,其功能十分强大,它不但可以处理Http请求中的业务逻辑,而且还可以输出HTML代码来显示指定页面。

       JSP是一种在Servlet规范之上的动态网页技术,在JSP页面之中,同样可以编写业务逻辑处理Http请求,也可以通过HTML代码来编辑页面,在实现功能上,ServletJSP貌似相同,实质存在一定的区别,表现在以下方面:

1、角色不同

2、编程方法不同

3Servlet需要编译后运行

4、速度不同

Servlet技术特点

       Servlet使用Java语言编写,它不仅继承了Java语言中的优点,而且Servlet还对Web的相关应用进行了封装,同时Servlet容器还提供了对应用的相关扩展,无论是在功能、性能、安全等方面都十分优秀,其技术特点表现在以下方面。

1、功能强大

2、可移植

3、性能高效

4、安全性高

5、可扩展

Servlet代码结构

       在Java中,通常所说的Servlet是指HttpServlet对象,在声明一个对象为Servlet时,需要继承HttpServlet类。

        HttpServlet类是Servlet接口的一个实现类,继承此类后,可以重写HttpServlet类中的方法对HTTP请求进行处理。 Servlet 工作原理-生命周期 

Servlet 工作原理-对象模型  Servlet 工作原理

n init 方法

public void init ( ServletConfig config ) throws ServletException

n service 方法

public void service ( HttpServletRequest request HttpServletResponse response ) throw ServletException, IOException

n destroy 方法

public destroy ( )n

init方法

<web-app>

  …

  <servlet> 

      <servlet-name>InitExample</servlet-name>

      <servlet-class>ServletInit</servlet-class>

  <init-param>

        <param-name>login</param-name>

        <param-value>snoopy</param-value>

      </init-param>

    </servlet>

            …

</web-app>

      对于web.xml中定义的param变量,可以通getInitParameter()  方法来获得。具体格式为:

String str = getInitParameter(“xxx”);

n service方法
n destroy 方法
n

     Servlet类可以直接继承这个方法,一般不需要重写。

         

            public destroy()

 共享变量

        Servlet中声明的某些成员变量,会被所有请求该servlet的用户共享。

  servlet共享变量来计算pi的值。

     PI/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ……

  doGetdoPost方法

        服务器接收到用户请求后,调用service方法检查http的请求类型(如getpost),并在service方法中根据用户的请求方式,对应地调用doGetdoPost方法。

         因此,不必重写service方法,可直接继承service方法,在servlet类中重写doPostdoGet方法达到同样的效果。

 重定向与转发

 重定向

        HttpServletResponse类中通过方法

void sendRedirect(java.lang.String location) 可实现页面的跳转。

      response.sendRedirect (“xxx.jsp”);

注意:该方法跳转后的页面,不能获得之前页面用户提交的数据。

 转发

        RequestDispatcher对象可以把用户对当前的JSP页面或servlet的请求转发给另一个JSP页面或servlet,并且将请求对象和相应对象传递给目标页面。

第一步:得到RequestDispatcher对象:

RequestDispatcher  rd = request.getRequestDispatcher(“xxx.jsp”);

第二步:转发:

    rd.forward( request, response);

转发 vs 重定向

m 默认情况下 , SendRedirect 不会保留请求对象中参数;需要保存请求的相关信息时要用 请求转发
m SendRedirect 会在客户端呈现跳转后的 URL 地址 请求转发 完全是在服务器上进行,浏览器地址栏中的地址保持不变
m 请求转发 不能将请求发到其他的 web 应用上 SendRedirect 可以
使用session

        HttpServletRequest对象可以调用getSession方法获取用户的session对象。该session对象即第四章中的session对象。

格式:

HttpSession session = request.getSession(true);

       可以在servlet中使用session对象及其方法,实现对同一用户的确认。

Servlet API编程常用接口和类

Servlet接口

方    法    说    明
public void init(ServletConfig config)    Servlet实例化后,Servlet容器调用此方法来完成初始化工作
public void service(ServletRequest request,ServletResponse response)    此方法用于处理客户端的请求
public void destroy()    当Servlet对象应该从Servlet容器中移除时,容器调用此方法,以便释放资源
public ServletConfig getServletConfig()    此方法用于获取Servlet对象的配置信息,返回ServletConfig对象
public String getServletInfo()    此方法返回有关Servlet的信息,它是纯文本格式的字符串,如作者、版本等

m 创建一个 servlet ,实现向客户端输出一个字符串

ServletConfig接口

方    法    说    明
public String getInitParameter(String name)    此方法返回String类型名称为name的初始化参数值
public Enumeration getInitParameterNames()    获取所有初始化参数名的枚举集合
public ServletContext getServletContext()    用于获取Servlet上下文对象
public String getServletName()    返回Servlet对象的实例名

HttpServletRequest接口

方    法    说    明
public String getContextPath()    返回请求的上下文路径,此路径以“/”开关
public Cookie[] getCookies()    返回请求中发送的所有cookie对象,返回值为cookie数组
public String getMethod()    返回请求所使用的HTTP类型,如get、post等
public String getQueryString()    返回请求中参数的字符串形式,如请求MyServlet?username=mr,则返回username=mr
public String getRequestURI()    返回主机名到请求参数之间部分的字符串形式
public StringBuffer getRequestURL()    返回请求的URL,此URL中不包含请求的参数。注意此方法返回的数据类型为StringBuffer
public String getServletPath()    返回请求URI中的Servlet路径的字符串,不包含请求中的参数信息
public HttpSession getSession()    返回与请求关联的HttpSession对象

HttpServletResponse接口

方    法    说    明
public void addCookie(Cookie cookie)    向客户端写入cookie信息
public void sendError(int sc)    发送一个错误状态码为sc的错误响应到客户端
public void sendError(int sc, String msg)    发送一个包含错误状态码及错误信息的响应到客户端,参数sc为错误状态码,参数msg为错误信息
public void sendRedirect(String location)    使用客户端重定向到新的URL,参数location为新的地址

HttpServlet类

      GenericServlet类实现了javax.servlet.Servlet接口,为程序的开发提供了方便;但在实际开发过程中,大多数的应用都是使用Servlet处理HTTP协议的请求,并对请求作出响应,所以通过继承GenericServlet类仍然不是很方便。javax.servlet.http.HttpServlet类对GenericServlet类进行了扩展,为HTTP请求的处理提供了灵活的方法。

     public abstract class HttpServlet

  extends GenericServlet implements Serializable

GenericServlet

       Servlet创建

      在编写一个Servlet对象时,必须实现javax.servlet.Servlet接口,但在Servlet接口中包含5个方法,也就是说创建一个Servlet对象要实现这5个方法,这样操作非常不方便。javax.servlet.GenericServlet类简化了此操作,实现了Servlet接口。

       public abstract class GenericServlet

  extends Object

  implements Servlet, ServletConfig,   Serializable        

      Servlet的创建十分简单,主要有两种创建方法。第一种方法为创建一个普通的Java类,使这个类继承HttpServlet类,再通过手动配置web.xml文件注册Servlet对象。此方法操作比较繁琐,在快速开发中通常不被采纳,而是使用第二种方法——直接通过IDE集成开发工具进行创建。

     使用集成开发工具创建Servlet非常方便,下面以Eclipse为例介绍Servlet的创建过程,其他开发工具大同小异。

Servlet配置

       要使Servlet对象正常地运行,需要进行适当的配置,以告知Web容器哪一个请求调用哪一个Servlet对象处理,对Servlet起到一个注册的作用。Servlet的配置包含在web.xml文件中,主要通过以下两步进行设置。

            (1)声明Servlet对象

            2)映射Servlet

m    创建名为 MyServlet 对象,继承了 HTTPServlet 类,重写 doGet()方法
总结概括 Servlet的生命周期
m 1 . 客户端向服务器 发出请求 ,服务器根据客户端的请求,找到相应的 Servlet
m 2. 判断该 Servlet 是否在内存中加载?若未加载,创建该 Servlet 实例,调用 init() 方法完成 初始化操作 若已经加载,转 3
m 3. 调用 service() 方法对客户端进行 响应 。等待下一次请求 Servlet 生命周期中, service() 方法是其中的核心。每当客户端向 Servlet 发出一个请求时,该方法就会被调用 , 对用户的请求进行处理,并返回响应。
m 4. 结束,调用 destroy() 方法 当服务器端不再需要该 Servlet 的时候,服务器调用 destroy() 方法卸载 Servlet ,释放 Servlet 运行时占用的资源。
http://www.yayakq.cn/news/635186/

相关文章:

  • 北京网站关键词排名网络营销策划的定义
  • 网站建设工程师 html5详情页设计图
  • 云霄县建设局网站wordpress头像变圆
  • 哪个网站做ppt网站建设方案书一定要有吗
  • php网站建设难点麒麟seo
  • 上海网站建设 数字展厅视觉设计和平面设计的区别
  • 静态网站开发语言站长工具排名分析
  • 顺的网站建设报价平面广告设计培训学校
  • 聊城网站优化公司中山中小型网站
  • 怎样设计一个公司网站台州网红打卡地
  • 网站怎么做成appwordpress iis7 伪静态
  • 网站建设需注意点山东省建设工程网站
  • 电商类网站开发将wordpress压缩包解压至一个空文件夹_并上传它
  • 北京网站建设怎么样天展馆设计图
  • 电子商务网站建设课外实训网站logo在哪里
  • 网页代理访问网站电子商务网站规划、电子商务网站建设
  • 怎样做diy家具网站网站开发vs2013
  • 网站建设 东营远见网络公司大厂县网站建设或SEO优化
  • 二手车东莞网站建设手游游戏推广平台
  • 可以发广告的网站学设计师学费要多少钱
  • 给钱做任务的网站网站流量能打开wifi打不开
  • 深圳集团网站建设哪家好重新安装一个微信
  • flash网站源码下载网站开发用到什么技术
  • 广州建站模板著名的国外设计网站有哪些
  • 专业酒店设计网站建设wordpress 管理员登陆
  • 石材做网站细节网站模板红黑
  • 建设个人网站设计公司画册零感设计
  • 园林企业建设网站网站首页页面代码
  • 怎样建设个人网站广告赚钱成立公司后需要做的事情
  • 如何建立营销型网站代理网址怎么设置