• Eclipse 和MyEclipse下Servlet Java Web开发(2)


    MyEclipse和Eclipse创建Servlet

    针对javax.servlet.Servlet

    新建一个Web Project,名称为HelloWorld,一路next,注意最后把生成web.xml勾选上。右键src,添加class

    包名是com.alex.ss,类名AServlet,interface 后面点击add,让其实现javax.servlet.Servlet

    IDE会自动生成AServlet.java的代码,我们在响应请求的方法service中 进行后台打印AServlet is serving your request...

    package com.alex.ss;
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    public class AServlet implements Servlet {
        @Override
        public void destroy() {}
        @Override
        public ServletConfig getServletConfig() {return null;}
        @Override
        public String getServletInfo() {return null;}
        @Override
        public void init(ServletConfig arg0) throws ServletException {}
        @Override
        public void service(ServletRequest arg0, ServletResponse arg1)
                throws ServletException, IOException {
            System.out.println("AServlet is serving your request...");
        }}

     最关键的是如何将一URL和该Servlet绑定,当用户请求该URL的时候,由该Servlet对象相应。

    在web.xml文件中,<web-app>节点中需要两组节点 ,如下

      <servlet>
          <servlet-name>servletAAA</servlet-name>
          <servlet-class>com.alex.ss.AServlet</servlet-class>
      </servlet>
      <servlet-mapping>
          <servlet-name>servletAAA</servlet-name>
          <url-pattern>/AServlet</url-pattern>
      </servlet-mapping>

    在这两组节点中,servletAAA名称由程序员决定,需要一致,这样/AServlet和类com.alex.ss.AServlet就对应上了。

    访问http://localhost:8080/HelloWorld/AServlet的时候,系统在后台打印数据。

     针对javax.servlet.http.HttpServlet

    在刚才的基础上,右键src 新建一个servlet,此时默认就是HttpServlet

    使用MyEclipse

    下一步关键是servlet mapping,和上面类似写成/BServlet

    此时IDE会在你刚才web.xml文件添加如下内容

    。。。。。
    <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>BServlet</servlet-name>
        <servlet-class>com.alex.ss.BServlet</servlet-class>
      </servlet>
    
    。。。。。。。
    <servlet-mapping>
        <servlet-name>BServlet</servlet-name>
        <url-pattern>/BServlet</url-pattern>
      </servlet-mapping>

    访问http://127.0.0.1:8080/HelloWorld/BServlet,doGet方法返回对应信息。

    如果是Eclipse的话

    下一步,采用默认,关键就是servlet的name和URL mapping,其余不用

    注意关键点:在web.xml文件中配置显得很罗嗦,Eclipse在类BServlet前面使用annotation

    来指定类和URL的关系

    ServletContext 的使用

    1.获取ServletContext对象

    对于实现Servlet接口的类

    在init方法中

    @Override
        public void init(ServletConfig arg0) throws ServletException {
            ServletContext sc= arg0.getServletContext();

    对于实现HttpServlet接口的类

    所有的方法都可以使用

    ServletContext sc=this.getServletContext();

    2.使用ServletContext

    主要是setAttribute 和getAttribute方法,

    setAttribute(String arg0, Object arg1)
    getAttribute(String arg)
     
  • 相关阅读:
    git常用命令
    vue+el-menu+vue-router实现动态导航条
    css实现文字内容超出显示省略号
    背景图片居中全屏自适应显示
    linux相关操作(虚拟环境、查看进程)(不定时更新)
    关于定义序列化器时,read_only和write_only有什么作用
    flask之请求与响应、闪现(阅后即焚)、请求扩展(before,after)、中间件、LOCAL对象、偏函数、
    flask之web网关、三件套、配置、路由(参数、转化器及自定义转化器)、cbv、模板语言、session
    flask中的endpoint、自定义转化器、与djnago中session区别、利用装饰器实现登录认证
    jinja2模板用法
  • 原文地址:https://www.cnblogs.com/legion/p/9051207.html
Copyright © 2020-2023  润新知