栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Servlet

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Servlet

目录
  • maven
    • 什么是maven
    • 创建项目
    • 如何使用
  • Servlet
    • 第一个Servlet程序
    • 其他的部署方式
      • 安装smart Tomcat
      • 配置smart Tomcat
    • 访问出错如何解决
      • 404
      • 405
      • 500
      • 出现空白页面
      • 出现“无法访问此网站”
  • servlet的生命周期

maven 什么是maven

maven是Java世界中,非常知名的“工程管理工具/ 构建工具”。

构建工具:核心功能
1.管理依赖
2.构建/编译
3.打包。把Java代码给构造成一个jar 或war。
jar就是一个特殊的压缩包,类似于rar

创建项目

搭配idea来使用

  1. 选择maven的方式来创建项目

    2.填写项目的名字和存储路径

如何使用

view —Tool Windows—maven可以打开如下窗口。

Servlet 第一个Servlet程序
  1. 创建一个maven项目
  2. 引入依赖
    需要在代码中引入Servlet api ,这个api不是JDK内置的,而是第三方(Tomcat提供的)
    https://mvnrepository.com/

JDK ,Tomcat ,Servlet的版本要配套
如果版本不配套,可能会出一些问题


        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        



    

注:在引入依赖的时候,一定不能忘记加上 最外层的标签

  1. 创建目录结构
    虽然当下maven帮我们创建了一些目录,但是还不够,还不足以支撑我们写一个Servlet项目。
    因此需要手动的在创建一些目录和文件出来。
    (1)在main目录下,右击,点击directory。

注:是webapp,不是webapps
(2)在webapp目录下,右击,new directory,命名为
WEB-INF 。


(3)在WEB-INF下,new file ,命名为web.xml

总结:

千万不能把目录的名字和位置搞错

(4)编写web.xml



  Archetype Created Web Application

  1. 编写Servlet代码

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

@WebServlet("/hello")
public class helloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //这行代码要注释掉,不能调用父类的doget
        //super.doGet(req, resp);

        //这个是让服务器在自己的控制台打印
        System.out.println("hello world");
        //在页面上也打印 hello world,把hello world字符串,放到http响应的body中,浏览器就会把body的内容显示到页面上
        resp.getWriter().write("hello world");

    }
}

  1. 打包
    当前的代码,是不能单独运行的(没有main方法)
    需要把当前代码打包,然后部署到Tomcat上,由Tomcat来进行调用。

    准备工作:修改pom.xm

    jar和 war都是Java发布程序的压缩包格式。
    war算是给Tomcat专门搞的,这里不光互包含一些.class ,还可以包含一些配置文件,以及依赖的第三方jar,还有html,css,js…

  1. 部署
    把war包拷贝到Tomcat的webapps目录下。

    然后启动Tomcat

  2. 验证程序

执行结果:

现在这个页面通过Java代码生成了,但是和直接创建一个HTML,里面写个hello world 有啥区别?
通过Java代码生成的内容是可变的,根据用户不同的输入,可以得到不同的结果。
直接创建有个HTML,里面写个hello world,页面的内容是固定的,是静态的,是不变的。

上述7个步骤,是针对一个新的项目。
项目创建好之后,后续修改代码,前三个步骤就不必重复了,直接从4-7进行操作即可。
重新部署的时候,不一定要重启Tomcat。

修改代码之后的执行效果:

其他的部署方式

还有一些办法,来提高上述流程的效率。
可以通过第三方的工具,来简化5和6的操作,毕竟每次修改代码,都需要重新打包,重新部署。
使用idea上的插件。叫做smart Tomcat。

安装smart Tomcat

配置smart Tomcat

在一个项目中,首次使用,需要先简单配置,后续就不必再配置了。


访问出错如何解决 404

要访问的资源在服务器上不存在。
(1)要请求的资源路径不存在
(2)路径虽然存在,但是服务器没有正确加载。
典型错误:
(1)少写了Context-Path

(2)少写了Servlet Path


(3)写的路径不匹配

(4)web.xml写错
当web.xml有问题的时候,Tomcat是不能正确加载到webapp的。
Tomcat发现这个目录中存在了web.xml且正确,Tomcat才能加载这个webapp

405

405 表示对应的 HTTP 请求方法没有实现。
(1)方法写的是doPost

啥时候浏览器发送GET请求?

  1. 直接在地址栏,输入URL
  2. 通过a标签跳转
  3. 通过img/link/script
  4. 通过form表单,method指定为GET
  5. 通过ajax,type指定为GET

啥时候浏览器发送Post请求?

  1. 通过form表单,method指定为Post
  2. 通过ajax,type指定为Post

(2)没有注释掉super

500

一般500就意味着服务器代码里抛出异常了,并且咱们的代码没处理,异常抛到Tomcat这里了。

如果代码中出现异常,可以通过catch来捕获到,如果catch没捕获到(类型不匹配,压根没catch),异常就会沿着调用栈,向上传递。

出现空白页面


出现“无法访问此网站”

一般是Tomcat没有正确启动(Tomcat端口被占用,启动失败)

servlet的生命周期

(1)init:初始化阶段,对象创建好了之后,就会执行到。用户可以重写这个方法,来执行一些初始化逻辑。
(2)service:在处理请求阶段来调用,每次来个请求都要调用一次service
(3)destroy:退出主循环,Tomcat结束之前会调用,用来释放资源。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/959690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号