用Eclipse 开发Dynamic Web Project应用程序
一、创建Server
通过菜单选择File > New > Other>Server,创建Server,如下图所示。
二、创建Dynamic Web Project项目
1、菜单选择File > New >other>web> Dynamic Web Project,新建项目,项目名helloweb,其他值默认。
2、设置项目helloweb的Java Build Path
鼠标右击项目helloweb>Build Path>Configue Build Path…>Java Build Path>Libraries>Add External JARs
选中apache-tomcat-8.0.9\lib中的servlet-api.ja
三、创建和运行JSP文件
1、右击项目,New >other>web>JSP File ,输入index.jsp,其他值默认。
2、在<body></body>中间处插入如下代码:
<% java.util.Date d =new java.util.Date();%>
<h1>Today's date is<%= d.toString()%></h1>
3、index.jsp文件鼠标右击 run as>run on server,查看运行结果。
四、创建和运行Servlet文件
1、右击项目,New >other>web>Servlet,java package为:com.demo,class name为:HelloWorldServlet
2、在doGet方法中添加如下代码:
response.getWriter().write("Hello, world!");
3、运行Servlet,重新启动Server后看结果
JAVAWEB之Servlet的简介,并实现一个Servlet的HelloWorldServlet
Servlet 简介:
- Java Servlet 是和平台无关的服务器端组件
- Servlet 运行在 Servlet 容器中
- Servlet 本质上是一个Java类,放在 Servlet 容器中
- Servlet 容器负责 Servlet 和客户的通信以及调用 Servlet 的方法
- Servlet 容器可以创建一个 Servlet,也可以销毁一个 Servlet 掌握整个 Servlet 生命周期
- Servlet 和客户的通信采用"请求和响应"的模式
Servlet 功能:
- 创建并返回基于客户请求的动态 HTML 页面
- 可在现有的 HTML 页面中创建并嵌入部分 HTML 页面
- 与其他服务器资源进行通信(数据库或其他基于 Java 的应用程序)
第一个 Servlet 程序:
- 首先下载 Tomcat 并且在 Eclipse 上配置 Server 运行环境完成部署
- 新建一个动态的 JAVAWEB 项目
- 新建一个 Java 类实现 Servlet 类
(一)注解方式
在Servlet中,设置了@WebServlet注解,当请求该Servlet时,服务器就会自动读取当中的信息,
如果注解@WebServlet("/HelloWorldServlet"),则表示该Servlet默认的请求路径为…/HelloWorldServlet,这里省略了urlPatterns属性名,完整的写法应该是:@WebServlet(urlPatterns = “/HelloWorldServlet”),
如果在@WebServlet中需要设置多个属性,必须给属性值加上属性名称,中间用逗号隔开,否则会报错.
若没有设置@WebServlet的name属性,默认值会是Servlet的类完整名称.
在servlet3.0以后,web.xml中对Servlet配置,同样可以在@WebServlet注解中配置.
下面是@WebServlet的属性列表:
在servlet3.0以后,我们可以不用再web.xml里面配置servlet,只需要加上@WebServlet注解就可以修改该servlet的属性了。
下面是@WebServlet的属性列表。
属性名 | 类型 | 描述 |
---|---|---|
name | String | 指定Servlet 的 name 属性,等价于 <servlet-name>。如果没有显式指定,则该 Servlet 的取值即为类的全限定名。 |
value | String[] | 该属性等价于 urlPatterns 属性。两个属性不能同时使用。 |
urlPatterns | String[] | 指定一组 Servlet 的 URL 匹配模式。等价于<url-pattern>标签。 |
loadOnStartup | int | 指定 Servlet 的加载顺序,等价于 <load-on-startup>标签。 |
initParams | WebInitParam[] | 指定一组 Servlet 初始化参数,等价于<init-param>标签。 |
asyncSupported | boolean | 声明 Servlet 是否支持异步操作模式,等价于<async-supported> 标签。 |
description | String | 该 Servlet 的描述信息,等价于 <description>标签。 |
displayName | String | 该 Servlet 的显示名,通常配合工具使用,等价于 <display-name>标签。 |
从上表可见,web.xml可以配置的servlet属性,在@WebServlet中都可以配置。
(二)XML配置文件方法
在配置Servlet时,有两个地方需要配置,一个是<servlet>,另一个是<servlet-Mapping>,这两个一个是配置Servlet,一个是配置其映射信息,其中<servlet>中的<servlet-name>可以随意指定,但要有一定的意义,一般取为类的名称,例如我的类名为HelloWorldServlet,这里取名为helloServlet,下面的<servlet-class>是类的全路径,package+calssname,一定要是全路径!
<servlet-Mapping>是映射信息,它也有一个<servlet-name>,里面的名字是对应的Servlet名,也就是我们上面配置的Servlet名字,这里是helloServlet,
下面的是映射路径,也就是访问Servlet的名称,这里也是以方便和有意义为前提的,是我们在访问Servlet在浏览器地址栏后面输入的那个信息,例如我的映射路径命名为/HelloWorldServlet,在地址栏中输入http://localhost:8080/项目名/HelloWorldServlet
<!-- servlet的配置 -->
<servlet>
<!-- servlet的内部名称,自定义。尽量有意义 -->
<servlet-name>helloServlet</servlet-name>
<!-- servlet的类全名: 包名+简单类名 -->
<servlet-class>com.demo.HelloWorldServlet</servlet-class>
</servlet>
<!-- servlet的映射配置 -->
<servlet-mapping>
<!-- servlet的内部名称,一定要和上面的内部名称保持一致!! -->
<servlet-name>helloServlet</servlet-name>
<!--访问路径 http://localhost:8080/项目名/HelloWorldServlet-->
<!--这里和@Webservlet路径一个道理 -->
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>helloweb</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.demo.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>