一.Servlet概述
1.1什么是Servlet
Servlet 是 Server Applet 的简称,是用Java编写的,可以运行在 Web 服务器(Tomcat)上的程序,是Sun公司制定的一套规范(接口)。
Servlet的主要用途:
-
接受、处理来自浏览器端(BS架构中的B端)的请求和用户输入
-
响应来自数据库或者服务端(BS架构中的S端)产生的数据到浏览器端,动态构建网页。
1.2手动实现Servlet小程序
1.2.1实现步骤
-
自定义一个类型,实现Servlet接口或者继承HttpServlet类
-
使用javac指令,将源文件编译成字节码文件
-
将编译完的字节码文件按照一定的组织结构打包,并编写web.xml配置文件
-
将整个组织结构放入Tomcat的webapps文件夹中
-
启动Tomcat,在浏览器上输入符合规范的地址去访问Servlet。
1.2.2具体实现
步骤1: 编写一个类HelloWorldServlet,继承HttpServlet类型
例:我的实现方法是在我们要用的文件夹下先创建一个.txt格式的文本,在其中进行代码撰写,撰写完成后将后缀名改为.java,如果有同学和我一样.java格式文件默认打开方式为idea也不要慌(因为当时我慌了...)正常继续进行就好了
package com.zrgj;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet{
@Override
public void service(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.getWriter().println("hello world");
}
}
步骤2: 编译,生成.class文件
在当前文件夹下调出cmd面板,输入下步代码后会在当前文件夹生成.class文件
javac HelloWorldServlet.java -classpath xxxxx\xxxxxx\servlet-api.jar
逐块分析:
HelloWorldServlet.java : 你所撰写的类文件名称
xxxxx\xxxxxx\servlet-api.jar : 你自己电脑中tomcat中的servlet-api.jar的路径
步骤3:项目的组织结构
简单来说,就是创建一个文件夹用来存放你的网页和以后后续的制作中的各种包
appName 项目名称(主要用来区分其他项目的)
-- WEB-INF文件夹
-- classes文件夹: 用来存储class文件的整个路径
com\zrgj\HelloWorldServlet.class
-- lib(可选文件夹)
-- web.xml: 当前项目的主配置文件
web.xml中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<web-app><servlet>
<servlet-name>a</servlet-name>(后续制作中出现多个servlet语句时通过servlet-name来和servlet-mapping配对)
<servlet-class>com.zrgj.HelloWorldServlet</servlet-class>(servlet中的内容表示的是HelloWorldServlet的文件路径)
</servlet>
<servlet-mapping>
<servlet-name>a</servlet-name>
<url-pattern>/hello</url-pattern>(可以理解为为我们的网页的主页面整了个名字)
</servlet-mapping>
</web-app>
步骤4:将整个文件夹组织结构,拷贝到tomcat的webapps文件夹里。这一步的专业术语叫部署项目
步骤5:启动tomcat
找到tomcat的bin目录下的startup.bat可执行文件,启动后,不要关闭。
步骤6:在浏览器上输入地址,向tomcat容器发送请求
http://localhost:8080/myfirstweb/hello ,回车后,应该会看到hello world字样
这时候应该会有同学问了?诶?为啥子要加上hello字样呢,我们的页面不就是myfirstweb嘛
其实当我们打开页面时会自动打开一个首页面,但我们没做到首页面这个东西啊,你们可以自己去试一下,页面会显示404:找不到
部署完项目后的执行流程:
1.创建一个新文件夹用来存储你制作的项目,在其中进行对于.java文件的编写和.class文件的转换(例:fristweb)
2.在fristweb下创建WEB-INF文件夹
3.在WEB-INF中创建classes文件夹,lib文件夹以及代表着你的网页的文件(例:web.xml)
4.在web.xml中编写servlet及servlet-pattern语句,并定义网页的url-pattern
5.在web.xml的servlet-class语句下写上class文件的路径(例:com.servlet.HelloWorld)不用标注后缀.class并保存
6.将.class文件存入classes文件夹下
7.在浏览器中通过网址:localhost:8088(端口号)/fristweb(文件夹名)/myServlet(url-pattern的值)
1.3 Idea开发Servlet程序
1.3.1创建java项目:MyFristWeb
1.3.2 添加web框架支持,也就是找到add Frameworks support,选择web application.
帮助我们自动维护web项目的组织结构:web-inf,web.xml
1.3.3 在WEB-INF下创建lib文件夹,将第三方iar包放入,比如servlet-api.jar文件
注意:别忘记 add as library
1.3.4 编写Servlet组件
1.3.5 关联tomcat:
edit configuration...
add new ...
tomcat server (注意千万不要用tomEE server)
1ocal:
选择tomcat home
fix定义项目部署的虚拟名称
apply ok