Servlet 项目创建和部署

目录

创建步骤:

1.创建项目

​编辑2. 引入依赖

3.创建目录,复制内容

4.编写代码

 5.打包

war 包和 jar 包的区别

6.部署

7.验证

简化:

常见报错情况:

1.端口占用

2.路径错误

3.405 

4.500 服务器代码抛出异常

5.依赖没下载好

6.出现“空白页面”

7.出现“无法访问此网站”


创建步骤:

1.创建项目

正常创建项目,在New Project 页面选择Maven,然后 Next. 

2. 引入依赖

去中央仓库复制依赖路径【路径已准备好】,然后复制到pom.xml文件中,如果爆红手动刷新一下

 

<dependencies>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>

3.创建目录,复制内容

<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>
</web-app>

说明:

  • src 表示源代码所在的⽬录
  • main/java 表示源代码的根⽬录. 后续创建 .java ⽂件就放到这个⽬录中.
  • main/resources 表示项⽬的⼀些资源⽂件所在的⽬录. 此处暂时不关注.
  • test/java 表示测试代码的根⽬录. 此处暂时不关注
  • webapp ⽬录就是未来部署到 Tomcat 中的⼀个重要的⽬录. 当前我们可以往 webapp 中放⼀些静态资源, ⽐如 html , css 等.在这个⽬录中还有⼀个重要的⽂件 web.xml. Tomcat 找到这个⽂件才能正确处理 webapp 中的动态资源
     

4.编写代码

注意:要先删除父类调用,然后写自己的代码,加上@WebServlet注解

说明:

  • 创建⼀个类 HelloServlet, 继承⾃ HttpServlet
  • 在这个类上⽅加上 @WebServlet("/hello") 注解, 表示 Tomcat 收到的请求中, 路径为/hello 的请求才会调⽤ HelloServlet 这个类的代码. (这个路径未包含 Context Path)
  • 重写 doGet ⽅法. doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应. 这个⽅法会在 Tomcat 收到 GET 请求时触发HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了⼀个 HttpServletRequest 对象. 后续想获取请求中的信息(⽅法, url, header, body等) 都是通过这个对象来获取.
  • HttpServletResponse表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码,header, body 等)
  • resp.getWriter() 会获取到⼀个流对象, 通过这个流对象就可以写⼊⼀些数据, 写⼊的数据会被构造成⼀个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器

 5.打包

注意:普通的java程序 打成 jar包

           部署给Tomcat的程序打成 war 包,(里面会有一些特定的目录结构和文件,tomcat需要识别这些内容,来加载webapp)

修改打包格式和包名的代码

// 在project标签下方写,war是打包的格式,XXXXX是打出来的包的文件名,自己设置
<packaging>war</packaging>  
<build>
    <finalName>XXXXX</finalName>
</build>

右侧,Maven 选项卡中选择package,双击,等待打包成功,显示如下: 

 

左侧文件目录中出现打好的包

 

说明:

前面加入了打包的代码,如果不加入,默认打包出来的是 .jar包

war 包和 jar 包的区别

jar 包是普通的 java 程序打包的结果. ⾥⾯会包含⼀些 .class ⽂件.
war 包是 java web 的程序, ⾥⾯除了会包含 .class ⽂件之外, 还会包含 HTML, CSS,
JavaScript, 图⽚, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 识别
 

6.部署

复制war包到tomcat的bin的webapps中。

7.验证

1)在tomcat的bin目录中,双击startup.bat ,启动tomcat

【这个tomcat部署项目中说过详细的过程】

2)网页访问


简化:

借助ideal的插件可以简化第5,6 步,也就是说按照下面简化的方式,写完代码就可以直接运行访问了。

安装完成以后

点击右上角

点击右上角绿色三角形,运行就ok了


常见报错情况:

1.端口占用

注意可能会出现端口占用报错,把之前打开的tomcat关了就行(或者你别的程序占用了修改端口就行)

查看端口占用代码:

netstat -aon|findstr 8080

8080是端口号,咱们这里查找8080端口的情况,下面杀死占用8080端口的进程

杀死进程

taskkill /pid 1684 /f

//1684是前面查找的占用8080端口的进程

2.路径错误

 出现 404
表示浏览器访问的资源服务器上不存在

可能得错误原因:

1.请求路径写错了

127.0.0:8080/content paxh/要运行的注解上的路径

2.路径写对了,但是war包没有被正确的加载 【 web.xml 写错了,如果有两Servlet 的 Servlet Path 相同】

3.405 

发请求的方法和代码不匹配 ,比如发的是 doPost ,写的是 get请求

方法和代码对了,但是没有删掉 super.doXXX

4.500 服务器代码抛出异常

可以通过打印信息,仔细观察异常调用栈

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String s = null;
resp.getWriter().write(s.length());
}
}

5.依赖没下载好

 解决:点击这个,刷新等待下载完成

6.出现“空白页面”

修改代码, 去掉 resp.getWritter().write() 操作
 

7.出现“无法访问此网站”

⼀般是 Tomcat 启动就失败了
注意检查路径,经常是Servlet Path 写错了


以上就是本文分享的全部内容了,关注小亭子,一起学编程~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值