我是靠谱客的博主 积极豌豆,最近开发中收集的这篇文章主要介绍maven引用servlet_Maven创建servlet项目演示(三),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

上一节用Maven新建了web项目成功后,本文演示在此基础上应用servlet。

从对tomcat服务器进行配置可的过程中可以知道,tomcat作为servlet容器运行,负责处理客户请求,把请求传送给servlet并把结果返回给客户。

这里的servlet作用是处理该客户请求的最终实体类。

servlet实际上是一个有规定接口,属性和方法的java类,tomcat容器与servlet之间的接口是由servlet API定义好的,这个接口定义了tomcat容器在servlet上要调用的方法及传递给servlet的对象。

tomcat服务器会在启动时,将在web.xml中配置好的servlet对象实例化,并加载到服务器的内存中,若接收到HTTP请求,服务器将调用相应的servlet对象来进行处理。

所有的servlet都必须实现javax.servlet.Servlet接口,但是我们在进行http协议相关的web开发时,一般直接通过继承javax.servlet.HttpServlet类来实现。

1.首先修改pom.xml文件,添加servlet依赖

1

2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

3 4.0.0

4 com.lei.demo

5 maven-web-demo

6 war

7 0.0.1-SNAPSHOT

8 maven-web-demo Maven Webapp

9 http://maven.apache.org

10

11

12

13 junit

14 junit

15 3.8.1

16 test

17

18

19

20 javax.servlet

21 servlet-api

22 3.1-b02

23 provided

24

25

26

27 maven-web-demo

28

29

修改完保存后,项目会从Maven仓库中自动添加servlet-api-3.1-b02.jar包的引用,如果仓库中没有,会自动下载。操作步骤如下:

67e606d3fd2ae7d791c480cd0aa4e9aa.png

简单说下:source folder和folder区别。因为本人在创建source folder的时候,总是莫名其妙的创建不了,或创建一个source folder结果它就跑到folder里面去了。(好像是一个bug来着,若你也出现同样的问题,请在创建source folder中以source folder,folder,package不同的形式来创建它。)

source folder :存放java源代码的文件夹,当然也包括一些package文件夹,还可以包含其他文件. 项目构建后,source folder里面的java自动编译成class文件到相应的bin文件夹中,其他文件也会移到到相应的目录下.

folder :里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,图片,声音等).在此我说明一下,如果里面含有java源文件,不管程序是否 正 确,eclipse都不会报错,把它们当做普通文件处理.但是项目如果要使用这里面的文件,情况就不同了.

565f8d7086baba97adf2a7e7647ea7a8.png

(很多要在Java中访问的文件可以放在src下或者便于区分新建特定名字的source folder目录放在下面,这样的会随着编译自动将java文件被编译到default output folder路径下面(若你重新设置了output folder文件路径,则编译到新设置的路径文件下),而不是java类型的文件,则是直接拷贝过去,这一切对于开发者都是透明的。需要注意的是,无论是使用默认或修改了的putput folder,在myeclipse工作目录中都以不可见的形式存在,当然你可以在文件夹中找到它)

2.新建一个Servlet

在source folder下的src/main/java下创建一个com.sulei.demo包,包下创建一个ServletDemo类。

f9e02c2d5a0a419d86dc388ec5c95ad4.png

一个servlet从产生到结束的流程如下:

a. servlet容器创建servlet的一个实例,在需要该servlet处理的请求到时触发。

b.容器调用该实例的init()方法。

c. 如果容器对该servlet有请求,则调用此实例的service()方法。(注意是service而不是servlet)

d. 容器在销毁本实例前调用它的destroy()方法,并还进行垃圾收集。

所以servlet生命周期常常被定义为:加载,实例化,初始化,处理客户请求和销毁。一旦清清了一个servlet,就没有办法阻止容器执行一个完整的生命周期了。

servlet类代码如下:

1packagecom.sulei.demo;2

3 importjava.io.IOException;4 importjavax.servlet.ServletException;5 importjavax.servlet.http.HttpServlet;6 importjavax.servlet.http.HttpServletRequest;7 importjavax.servlet.http.HttpServletResponse;8

9 /**

10 * Servlet implementation class ServletDemo11 */

12 public class ServletDemo extendsHttpServlet {13 private static final long serialVersionUID = 1L;14

15 publicServletDemo() {16 super();17 }18   //doGet方法处理GET类型的请求

19 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {20 doPost(request, response);21 }22   //doPost处理POST类型的请求

23 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {24 request.setCharacterEncoding("UTF-8");25 response.setContentType("text/html;charset=utf-8");26

27 String action = request.getParameter("action");28 if("login_input".equals(action)) {29 request.getRequestDispatcher("login.jsp").forward(request , response);30 } else if("login".equals(action)) {31 String name = request.getParameter("name");32 String password = request.getParameter("password");33

34 System.out.println("name->" + name + ",password->" +password);35 }36 }37

38 }

3.修改web.xml配置文件

978d9eda2d631e4c19b9691ebf911ff3.png

web.xml配置文件的内容为:

1 <?xml version="1.0" encoding="UTF-8"?>

2

3 Archetype Created Web Application

4

5

6 ServletDemo

7 ServletDemo

8 com.sulei.demo.ServletDemo

9

10

11 ServletDemo

12 /demo

13

14

4.创建index.jsp

jsp文件内容如下:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9

10

用Maven创建web项目,测试Servlet

11 登录(demo?action=login_input)

12

13

5.创建login.jsp

jsp文件内容如下:

1

2 pageEncoding="UTF-8"%>

3

4

5

6

7

Insert title here

8

9

10

11 Name:

12 Password:

13

14

15

16

17

扩展内容:JSP是基于servlet的扩展,实际上JSP编译后就是servlet文件,不过使用jsp技术使得网页开发变得更加方便而已。

servlet中只能通过out.println()语句输出HTML语法。

JSP网页是传统的HTML文件中加入java程序片段和JSP标签构成的,servlet/JSP容器收到客户端的请求时,首先执行网页中的程序代码,然后把结果以HTML格式响应给客户端。

现在效果图如下:(注意jsp文件存放的位置都是存放在webapp文件夹下)

a1576a7a5a04808231d31f809ebc52be.png

6.运行代码:右键单击工程名称-->run as -->myeclipse service application--> tomcat 7 .x-->ok

各步骤截图如下:

a.进入index页面

80afaca2a92c68e6c0c4bf976395c240.png

b.进入login页面

6709a9d912fa24188b39f6082b7e7a18.png

c.在窗口可以看到运行java程序获取jsp页面的name和password结果

dc763bcb0d1fc72191ea062fcaf2c07f.png

最后

以上就是积极豌豆为你收集整理的maven引用servlet_Maven创建servlet项目演示(三)的全部内容,希望文章能够帮你解决maven引用servlet_Maven创建servlet项目演示(三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部