【温故知新】从零开始搭建 java web项目(二)

系列一介绍了新建一个 web 项目的基本步骤,系列二就准备介绍下基本的 jsp 和  servlet 使用。

(关于jsp的编译指令、动作指令、内置对象不在本文讨论范围之内)

1. 首先,在 pom.xml 文件中添加 jsp 和 servlet 的支持包。

<dependencies>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

</dependencies>

2. 编写第一个处理请求的 servlet。

所有的 servlet 必须继承 HttpServlet 才能具备处理和响应 HTTP 请求的能力,这也是上边依赖添加的必要性。子类 servlet 只需要重写 doGet() 方法就能自定义对 GET 请求的处理,重写 doPost() 方法能处理 POST请求,其它还有 doPut()、doDelete()等方法。

如果你熟悉 HttpServlet 的相关知识,就会知道重写 service() 方法也能达到目的,因为这个才是处理请求的中枢方法,它负责处理请求,并根据请求类型分配到指定方法上去,如下图所示:

下边给出第一个 servlet 实例。

public class HelloServlet extends HttpServlet{

@Override

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

request.setCharacterEncoding("UTF-8");

System.out.println(request.getQueryString());

String name = request.getParameter("name");

String gender = request.getParameter("gender");

PrintStream out = new PrintStream(response.getOutputStream());

out.println("<html>");

out.println("<head>");

out.println("<title>Servlet测试</title>");

out.println("</head>");

out.println("<body>");

out.println("您的名字是:" + name + " <hr/>");

out.println("您的性别:" + gender + " <hr/>");

out.println("</body></head>");

}

}

这是一种经典的处理和相应方式,采用的是 response 对象的 输出流直接拼写页面,然后返回给客户端。还有其它的方式,比如 jsp 页面,这个后边会具体描述。

PS: servlet 的生命周期以及init()、destroy() 方法也要掌握一下。

3. 在 web.xml 中配置请求的映射

虽然 HelloServlet 以及具备了处理请求的能力,但是它具体用来处理那种样式的 URL 请求还没有配置,而这个是在 web.xml 中决定的。在 web.xml 的 web-app 元素里添加如下的代码:

<servlet>

<servlet-name>helloServlet</servlet-name>

<servlet-class>Servlet.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>helloServlet</servlet-name>

<url-pattern>/hello</url-pattern>

</servlet-mapping>

这样子就把 HelloServlet 绑定来处理 /hello 的请求了。

4. 请求实例

5. 重要知识点

l  Servlet 3.0 开始,可以使用 @WebServlet 注解来代替 web.xml 中配置请求模式的操作,可以说是很方便了。下图演示了这一点,以及重写 service() 方法。

l  事实上,Servlet 2.5 规范之后,web.xml的必要性就不复存在了,原因大概在于 注解的强势崛起吧。不过,我们在开发的时候仍习惯于保留这个 web.xml,然后同时活用注解的方式。

@WebServlet(name="worldServlet", urlPatterns = {"/world"})

public class WorldServlet extends HttpServlet {

@Override

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

request.setCharacterEncoding("UTF-8");

System.out.println(request.getQueryString());

String world = request.getParameter("world");

PrintStream out = new PrintStream(response.getOutputStream());

out.println("<html>");

out.println("<head>");

out.println("<title>world测试</title>");

out.println("</head>");

out.println("<body>");

out.println("您的世界是:" + world + " <hr/>");

out.println("</body></head>");

}

}

l  除了在 servlet 的处理方法中直接写回输出页面之外,还可以采用 jsp 的方式响应请求。而事实上,jsp 就是一种特殊的 servlet,它由 web 容器(比如 tomcat)负责编译生成 servlet,感兴趣的可以自己查阅资料,具体来说页面跳转的方式,使用 request.forward("/process.jsp")方法。(还有重定向的方式,开发人员还是需要区分两者的,这里不提)

Servlet 代码如下所示:

@WebServlet(name = "thirdServlet", urlPatterns = {"/third"})

public class ThirdServlet extends HttpServlet {

@Override

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

//        request.getRequestDispatcher("/WEB-INF/page/process.jsp").forward(request,response);

request.getRequestDispatcher("/outer_process.jsp").forward(request,response);

}

}

process.jsp内容如下,放置在/WEB-INF/page下,在外部也有一个相同内容(除了 title)的文件outer_process.jsp,这是为了演示他们在使用forward时的不同,因为WEB-INF下的文件无法直接在浏览器访问。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>处理页</title>

</head>

<body>

<!-- 使用 jsp 内置对象 out(javax.servlet.jsp.JspWriter) 来输出当前时间,刷新可更新时间。 -->

<%

out.println(new java.util.Date());

%>

<!-- 使用 jsp 内置对象 request 来获取参数 -->

<%

String name = request.getParameter("name");

Integer age = Integer.parseInt(request.getParameter("age"));

%>

您的名字是: <%=name%><hr/>

您的年龄是:<%=age%><hr/>

</body>

</html>

原文地址:https://www.cnblogs.com/bityinjd/p/9279494.html

时间: 2024-10-28 06:22:11

【温故知新】从零开始搭建 java web项目(二)的相关文章

使用MyEclipse搭建java Web项目开发

转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官网上下载安装即可,之后需要细心的配置环境变量,我给大家推荐百度文库的一篇文章,猛戳这里. 第二步,下载Tomcat,当然可以去Apache Tomcat的官网,同样,您可以移驾到

【java项目实战】一步步教你使用MyEclipse搭建java Web项目开发环境(一)

首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成,只要在安装配置成功之后才可以进入下面的java Web项目开发环境的搭建. 1.安装工具 第一步,下载并安装JDK,到官网上下载安装即可,之后需要细心的配置环境变量,我给大家推荐百度文库的一篇文章,猛戳这里. 第二步,下载Tomcat,当然可以去Apache Tomcat的官网,同样,您可以移驾到我的资源下载,外送API文档(免资源分). 第三步,下载MyEclipse,MyEclipse官网,傻瓜式安装即可. ===

Myeclipse 搭建Java Web 项目 《一》

今天将图文并茂的介绍如何使用myclipse 创建Java Web 项目;我使用的是myclipse 8.6 来进行创建: 1.打开Myeclipse,点击File --->然后New ----> Web Project,然后就创建Web项目. 2. 填写Web 项目相关信息: Project Name: 项目名称 Source folder: src 存放源文件 Web root folder: Web 应用的根目录 Context: 部署到Tomcat 访问时候访问路径. 点击Finish

Myeclipse 搭建Java Web 项目:Servlet 《二》

上一节,我们使用myeclipse部署了web项目,但那部署的为静态的web项目,下面我们来学习编写动态的web项目,编写动态项目必须要用到的为:servlet. Servlet是由sun公司命名的,Servlet = Server + Applet(Applet表示小应用程序),Servlet是在服务器端运行的小程序. 编写一个现实登陆的Servlet,并部署访问. 1.编写登录的jsp页面,采用post方式提交. 访问此JSP页面: 2.编写LoginServlet 来通过后台校验登录的用户

MyEclipse搭建Java Web项目开发环境

1.安装工具 第一步,下载安装JDK,并配置环境: 配置环境变量步骤: (1)新建变量名:JAVA_HOME,变量值为JDK的安装路径: (2)打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin: (3)新建变量名:CLASSPATH,变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar. 验证是否配置成功:在cmd命令下输入 java命令,如出现对应的信息,表示安装成功,如下所示: 第二步,下载并

搭建java Web项目开发环境(一)

1.新建MyEclipse的工作空间 2.选择工作空间的路径 3.建立我们的Web项目 4.输入Web项目的名称,我们使用的是J2EE1.4,Finish之后一定要选择No,如果选择Y的话,MyEclipse就能使用jdk1.5的环境了. 5.此时我们的Web项目基本上就算完成了,下面这幅图,我们大家详细的介绍一下它的目录. 3.配置服务器 虽然我们的Web项目建完了,但是此时不论是Html,还是Servlet,JSP都不能运行的,我们需要将他们部署到服务器上.服务器也叫Web容器,它就是一种所

Intellij Idea搭建java web项目(问题总结)

这两天突发奇想下载了Intellij Idea,准备体验下这个传说中很强大IDE.工具下载就不多说了,网上一搜便知,博主是直接从Intellij官网下载的最新完整版,可惜的是只能使用30天,不过也差不多,废话就不多说了,进入正题. 使用Intellij Idea 开发一般都用maven构建项目,首先从maven官网现在最新版,然后就是配置maven到系统环境变量,具体操作不细说了,问某度. 在Intelli Idea中配置maven,基本步骤:打开Idea,菜单File->setting打开属性

Eclipse使用Maven搭建Java Web项目并直接部署Tomcat

1.环境: Windows 10 Java 1.8 Maven 3.3.9 Eclipse IDE for Java EE Developers 2.准备: eclipse环境什么的不赘述,Maven环境还是要的 先下载Maven,地址:http://maven.apache.org/download.cgi 直接点apache-maven-3.3.9-bin.zip下载,然后解压到随便什么目录 下好之后配置环境变量,在系统变量里新建: 变量名:M2_HOME 变量值:C:\Program Fi

使用IntelliJ IDEA和maven搭建java web项目

File -> New Module,进入创建项目窗口. 点击Next,填写GroupId.ArtifactId和Version 填写Module name,要保证maven中央仓库能连接上才可以正常生成目录结构,可以去改maven镜像地址 生成maven的项目骨架之后,项目的工程结构如图:recources文件夹:一般用来存放一些资源文件webapp文件夹:用来存放web配置文件以及jsp页面等,这已经组成了一个原始的web应用 打开"Project Structure" 配置