浅 谈 Servlet

一、传统 Servlet配置与Java EE 7 Servlet 之间的比较

我们都知道,传统创建一个Servlet后,都需要在web.xml文件中进行相关的配置。即需要在web.xml

文件中添加以下代码:

<servlet>
    <servlet-name>First_Servlet</servlet-name>
    <servlet-class>servlet.First_Servlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>First_Servlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

而在Java EE 7 中,每当我们创建一个新的Servlet时,不需要再e.xml文件中进行相关配置了,只

需要将Servlet类继承HttpServlet,并在该类前声明 @WebServlet("/hello")注解,启动Tomcat服务器

后,在本机即可通过  http://localhost:8080/Java_Web/hello  对该Servlet进行访问。

注意点:

1、@WebServlet 注解是用来标识一个类是一个Servlet类的。

2、该注解使用时,一般包含 urlPatterns、value 属性,但是,当该注解只是用来声明Servlet的

访问路径时,即声明urlPatterns时,只需指定value值即可。否则,当需要以上两个属性外的其他属性

时,需要显示指定urlPatterns属性,而不能只指定value值。

二、传统 Servlet初始化参数配置与Java EE 7 Servlet 之间的比较

在Java web中,我们可以配置至少两种类型的参数。

第一种是web全局初始化参数,该参数对整个web应用生效。第二种是servlet初始化参数。但在以前

都是在web.xml文件中进行配置,相关详细配置如下:

 
 <!-- 全局参数 -->
 <context-param>
      <param-name>user</param-name>
      <param-value>root</param-value>
  </context-param>
  
  <!-- Servlet参数 -->
    <servlet>
    <servlet-name>First_Servlet</servlet-name>
    <servlet-class>servlet.First_Servlet</servlet-class>
    <init-param>
      <param-name>user</param-name>
      <param-value>root</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>First_Servlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

以上两种参数在一个Servlet中可以通过以下方式获得:

String userName = request.getServletContext().getInitParameter("user");
		System.out.println("=="+userName);

public void init(ServletConfig config) throws ServletException {
		// TODO Auto-generated method stub
		super.init(config);
		System.out.println(config.getInitParameter("user"));
	}
或者:
ServletConfig p = this.getServletConfig();
	String value = p.getInitParameter("name");
		System.out.println(value);

//注意:不能通过request对象直接获取初始化参数的值,但可以通过request获取ServletContext对///象然后获取全局初始化变量的值,如
        request.getServletContext().getInitParameter("user")

当然除了以上两种参数,我们也可以根据需要配置其他的参数,如Filter过滤器参数。

在Java EE 7 中,允许使用Java注解来定义Servlet初始化参数(非全局参数)

//在声明Servlet路径的同时也声明了该Servlet的一个初始化参数
@WebServlet(urlPatterns="/a",[email protected](name="name",value="a"))

我们或许会问,那如果我想声明多个Servlet初始化参数呢?

//在声明Servlet路径的同时也声明了该Servlet的2个初始化参数
@WebServlet(urlPatterns="/a",initParams={@WebInitParam(name="name",value="a"),@WebInitParam(name="age",value="13")})

在@WebServlet注解中,initParams属性可以传入一个@WebInitParam注解数组,每个@WebInitParam

注解相当于定义了一个初始化参数,但注意,多个参数要以中括号{}包裹着。

时间: 2024-08-28 02:23:41

浅 谈 Servlet的相关文章

浅谈servlet版本

说白话,eclipseJ2EE版本新建一个web项目后,在IDE中的项目根目录下会看到2.3,2.4,2.5,3.0,3.1....据说最新的4.0在路上,已经有草案了,很期待ing. 360百科是这么描述的: Servlet(Server Applet),全称Java Servlet,未有中文译文.是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口

浅谈Servlet和Filter的区别以及两者在Struts2和Springmvc中的应用

在javaweb开发中,Servlet和Filter是很重要的两个概念,我们平时进行javaweb开发的时候,会经常和Servlet和Filter打交道,但我们真的了解Servlet和Filter吗? 一.基本概念 Servlet: Servlet 是在WEB服务器上运行的程序.这个词是在 Java applet的环境中创造的,Java applet 是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务. 服务器上需要一些程序,

浅谈Servlet读取Html参数

1首先:webApp名称为cookieAndsession.html文件一般放在WebRoot文件夹下:/cookieAndsession/WebRoot/OrderForm.html,那么外界要访问这个页面时只需直接键入应用名称/*.html 2.servelet名称:/cookieAndsession/src/cn/donghua/session/ShowItems.java 3. web.xml配置: <servlet> <servlet-name>showItems<

浅谈Tomcat和Servlet

本文浅谈下对Tomcat和Servlet总体的理解,初学时有用过一段时间,但当时疲于应对如何xml配置和使用,对他们的理解就像是一个黑匣子.现在回顾一下帮助自己加深网络的理解.开始还是先推荐我看的文章和书. https://www.cnblogs.com/zhouyuqin/p/5143121.html 以下都是IBM Developer上的文章,该网站上还是有很多优质文章. https://www.ibm.com/developerworks/cn/java/j-lo-servlet/  Se

浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 全Socket层(SSL)等等,目前互联网主要使用它做静态资源服务器,也可以做代理服务器转发请求(如:图片链等),结合tomcat等 servlet容器处理jsp.1.2.ngnix     —— 俄罗斯人开发的一个高性能的 HTTP和反向代理服务器.由于Nginx 超越 Apache 的高性能和稳

浅谈WebLogic和Tomcat

浅谈WebLogic和Tomcat 分类: Java Web2011-11-30 21:19 54484人阅读 评论(19) 收藏 举报 weblogictomcat应用服务器ejbservletjava J2ee开发主要是浏览器和服务器进行交互的一种结构.逻辑都是在后台进行处理,然后再把结果传输回给浏览器.可以看出服务器在这种架构是非常重要的. 这几天接触到两种Java的web服务器,做项目用的Tomcat,看视频看的是WebLogic Server(WLS),都是web服务器,有什么区别和联

浅谈设计模式的学习(中)

在<浅谈设计模式的学习(上)>中我说到了设计模式的基石-----抽象思维.为什么需要抽象思维呢?因为越抽象就越不容易出错,就像有些领导人说话:坚持改革开放.但怎么算坚持改革开放呢,没有具体的标准,因事而异,所以就不容易违背这个坚持改革开放的原则了. 3.学习设计模式,要保持抽象的思维     什么是抽象思维呢?真的不好说,抽象的东西往往难以说明白,听了也难以搞明白,还是通过具体的例子来说吧 有这么一个学生请假的场景,如果请假时间一天以内则有班长批准就可以了,三天以内则需要老师批准,超过三天就得

浅谈Tomcat

浅谈Tomcat 随着java的流行,其在web上的应用也越来越广,tomcat作为一个开源的servlet容器,应用前景越来越广,本文将向你讲述tomcat的一些知识. 一:简介tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品(Most Innovative Java Product),同时它又是sun公司官方推荐的servlet和jsp容器(具体可以见http://java.sun.com/products/jsp/

【架构】浅谈web网站架构演变过程

浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.maven+spri