zoukankan      html  css  js  c++  java
  • Java-servlet

    Java-servlet 快速入门

    我想用Java接口,就类似于现在单位有同事正在做的工作,然后我请教他们,他们告诉我,如果想学习写接口,就从Servlet开始吧。

    这篇Blog,第一个为了给自己的学习做一个总结,第二为了以后遗忘后快速的学习

    Start

      servlet是基于Java技术的,可以捕捉Web请求的一个服务,Servlet部署再Tomcat服务器后,Web发送请求到Servlet,Servlet捕捉请求,提取里面的传递的参数,根据这些参数处理数据,然后返回到客户端即可。

      刚开始不是太理解Servlet的左右,后来恍然才明白,Servlet其实就类似于.Net中一般处理问题(.ashx)。因为我之前是学习.Net,也用到过这个来捕捉以及处理请求,因此我就瞬间明白Servlet的作用了。

    使用方法

      再MyEclipse中,添加Servlet文件即可,文件的扩展名称也是servlet。

      这里有两个参数是很重要的,

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

    {

    }

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

    {

    }

    我将这两个函数当做某一种形式的委托,当发送POST或者Get请求后,这两个函数就会被调用

    这里比较重要的一个参数是:HttpServletRequest request

    我们可以从 request 变量中读取请求传递过来的参数,然后根据这些参数的值做进一步的处理。

    String name = (String) request.getParameter("name");//参考用法

    getParameter("ParameterName")方法可以用来读取请求字符串中问好之后的参数

    当然还有其他的方法,可以查看文档

     

     

    Servlet的配置

    创建WebProject的事后,是有个web.xml文件,我们再这里配置Servlet信息,其实再创建Servlet文件的过程中,创建向导里面也会出现填写配置信息,文件创建之后,如果需要修改Servlet,就可以到这个文件中就行修改。

      <servlet>

        <description>This is the description of my J2EE component</description>

        <display-name>This is the display name of my J2EE component</display-name>

        <servlet-name>myservlet</servlet-name>

        <servlet-class>myservlet</servlet-class>

      </servlet>

     

      <servlet-mapping>

        <servlet-name>myservlet</servlet-name>

        <url-pattern>/myservlet</url-pattern>

      </servlet-mapping>

      <welcome-file-list>

     

    上面是两个比较重要的两个参数

     <servlet-name>myservlet</servlet-name>中,myservlet就表示你创建的Servlet文件的名称

     <servlet-class>myservlet</servlet-class>中,myservlet是Servlet类的名称,一般情况下Servlet类的名称和文件的名称是相同的,当然这里我们也可以再类之前加入Package包的名称,写一个完整的路径

     

    <servlet-mapping>中的 <url-pattern>/myservlet</url-pattern>表示我们请求Servlet的URL路径,这个跟Servlet再目录中存在的位置没有关系,我们可以理解为这个配置就是 给硬盘中servlet的路径映射一个请求路径,类似于IIS里面的虚拟目录似的。比如:如果Servlet再硬盘中的实际目录比较复杂和长,不容易记住,这个时候我们就可以用一个名称比较短且容易记忆的名称来表示servlet文件的实际路径,我们可以将这种方法称之为映射。

    比如:web的根路径是 http://ServerIP/myweb ,Servlet再硬盘中的路径是A/B/C/D/E/F/G/myServlet.servlet,如果不映射的话,我们就需要输入:http://ServerIP/myweb/A/B/C/D/E/F/G/myServlet.servlet来访问servlet文件,如果我们配置了<url-pattern>/servletPath/myservlet</url-pattern>后,我们就可以使用下面的URL来访问

    http://ServerIP/myweb/servletPath/myServlet.servlet,动过对比,我们就可以看出 <servlet-mapping>配置的节点的重要性了哦

     

     

    Servlet的会话机制:

    Servlet页面跟JSP页面类似,也可以使用会话机制来保存和读取属性参数:

    public HttpSession getSession(boolean creat)

    当create参数为true时,表示如果会话对象存在则直接截取,如果不存在则创建一个新的会话并返回。 当参数为false的时,表示如果会话对象存在则直接截取,如果不存在就直接返回NULL,并不创建新的会话对象

    保存属性对象

    public Object setAttribute(String name, Object attribute);

    读取属性对象

    public Object getAttribute(String name);

     

    Servlet请求转发

    Web应用中,Servlet除了直接接受客户端请求执行对应的业务逻辑操作之外,它还经常充当控制器(controller).充当控制器的Servlet可以将请求转换给另外一个Servlet或者JSP页面,甚至是静态的HTML页面,然后由他们进行处理并产生对应的响应。  应该注意的是,请求转发只发生在同一个上下文中,这里所谓的上下文就是指Servlet所在的应用程序的范围。

     

    这里需要注意点的是,如果使用Request获取 RequestDispatcher并转发给其他的Servlet时,所使用的路径是 Servlet再Web.xml注册的路径。

     

     

    Jason

    2014年05月11日

     

     

     

  • 相关阅读:
    潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)
    HTML中的转义字符
    Java防止SQL注入
    Web很脆弱,SQL注入要了解
    防止sql注入:替换危险字符
    Hadoop HA详解
    java代码---charAt()和toCharry()的用法
    java代码-----计算器,界面+功能+boolean
    java代码-----运用endWith()和start()方法
    java代码---indexOf()方法
  • 原文地址:https://www.cnblogs.com/xingchen/p/3721431.html
Copyright © 2011-2022 走看看