Servlet编程学习过程/如何建立Servlet/如何部署Servlet

认识Servlet

在运行JSP时,服务器底层会将JSP编译成一个Java类,这个类就是Servlet。

Servlet是一种运行在服务器端(一般指的是WEB服务器)的Java应用程序,可以生成动态的Web页面,它是属于客户与服务器响应的中间层。

因此,可以说JSP就是Servlet,只不过JSP的编写成本低得多。

Q1:Jsp和Servlet的关系,为什么说JSP的编写成本更低?

 JSP是简化的Servlet设计,在HTML标签中嵌套Java代码,用以高效开发Web应用的动态网页。所见即所得。 Servlet开发方式麻烦:需要继承父类、覆盖方法、配置Web.xml或注解。代码修改麻烦:重新编译、部署、重启服务;显示方式麻烦:获取流、使用println()逐行打印;

编写Servlet

建立 Servlet

先在项目资源空白处右键,新建动态web项目

 命名为login,选择已有的tomcat8.5

 接着,解读一下下图内容:上面的Source folders on build path是java的源文件,下面default output folder是编译成.class文件的地方

 因为我不想让java源文件嵌套这么多层,所以我把上面的改成:

 在点击下一步,这时候我勾选web.xml,并且修改了content directory,把前面多余的嵌套给删了,最后点击完成,一个web项目就建立好了

 然后右击login项目,新建→其他

 找到web下面的Servlet,点击下一步

 Java Package是这个servlet存放的包,如果不填,就会自动生成一个默认包,class name是填你创建的servlet的名称

提示一下,类名要以大写字母开头 

 

 然后点下一步即可,比如我编写的这个就是类名为WelcomeServlet,包名为servlets

 这些代码都是自动生成的,除了我改写的DoGet方法

讲解代码 

 Servlet必须继承HttpServlet这个父类

package servlets;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class WelcomeServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
	response.setContentType("text/html;charset=gb2312");
	PrintWriter out=response.getWriter();
	out.println("欢迎来到本系统!");
}
}

还要添加一个无返回值的DoGet方法,为了处理基于get的请求,还要添加两个参数

配置Servlet

编写完一个Servlet还不能直接访问,需要配置Servlet,才能通过url映射到与之对应的Servlet中,用户才能对它进行访问。

Servlet的配置是通过lib下的web.xml来实现的

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Prj09</display-name>

   <servlet>
    <servlet-name>WelcomeServlet</servlet-name>
    <servlet-class>servlets.WelcomeServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>WelcomeServlet</servlet-name>
    <url-pattern>/servlets/WelcomeServlet</url-pattern>
  </servlet-mapping>
</web-app>

分别解释:

<servlet-name>WelcomeServlet</servlet-name>:为servlet取一个别名

<servlet-class>servlets.WelcomeServlet</servlet-class>:告诉tomcat当前servlet的全名,即包名.全名

<servlet-name>WelcomeServlet</servlet-name>:实现映射,填写servlet名

<url-pattern>/servlets/WelcomeServlet</url-pattern>:与servlet绑定的url格式

部署servlet

进入 Windows DOS 命令行窗口

编译 Java 源代码一般可以通过两种方式完成:DOS 命令行 和 IDE(集成开发环境)。使用 IDE 可以一键完成编译工作,十分的方便,但 IDE 给我们带来方便的同时,也隐藏了编译过程中的许多细节,我们无法了解其中的原理和机制。

对于初学者来说,为了更加深刻地理解 Servlet 的运行原理和机制,最好的办法就是使用 DOS 命令行进行编译。

使用快捷键 “Windows + R”,打开运行对话框,在对话框输入cmd,点击“确定”,进入 Windows 系统命令行窗口,如图。

引入 javax.servlet 包

由于 Servlet 是 JavaEE 下的技术标准,不是 JDK 的组成部分,所以在编译 Servlet 前,需要先引入 servlet-api.jar 包(在 Apache Tomcat 安装目录下的 lib 文件夹中提供了此 jar 包)。

 使用命令set classpath可以将 servlet-api.jar 引入,该命令的语法如下,其中 path 表示引入 jar 包的路径。

set classpath=D:\软件\tomcat\apache-tomcat-8.5.82-windows-x64\apache-tomcat-8.5.82\lib\servlet-api.jar

 注:set classpath命令用来为当前窗口设置临时环境变量,只在当前窗口下有效。

编译 Servlet

1)在命令提示符中使用 cd命令进入 MyServlet.java 所在的目录。

2)使用 javac -encoding UTF-8 -d . MyServlet.java命令进行编译,若没有报错,则编译成功。


其中:

  • javac :编译命令;
  • -encoding UTF-8:用于指定编译源文件时的字符编码,这里指定为 UTF-8;
  • javac -d:带包编译 ;
  •  .:表示当前位置。


3)进入 MyServlet.java 文件所在的目录,可发现新增了编译后的目录和 .classes 字节码文件,自此我们就完成了对 Servlet 的编译工作。

 创建目录结构

在完成对 Servlet 的编译后,下一步依照 JavaWeb 应用的固定目录结构,在 Tomcat 中为该 Servlet 创建目录。

 在 WEB-INF 内创建 classes 文件夹;

 将 Servlet 移动到 Tomcat 目录中

将编译好的字节码和目录移动到 \webapps\Prj09\WEB-INF\classes 目录下。

访问 

右键运行 

  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值