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

servlet基础知识(一)

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

servlet基础知识(一)

servlet基础知识一
  • 1.servlet是什么?
  • 2.第一个servlet项目
    • 2.1 创建一个Maven项目(Servlet是基于Maven实现的)
    • 2.2 添加Servlet框架(maven项目->servlet项目)
    • 2.3创建servlet的目录
    • 2.4编写代码
    • 2.5打包项目
    • 2.6发布项目到Tomcat(部署程序)
    • 2.7启动Tomcat,访问网站
      • 更方便的运行javaWeb项目
      • 配置Smart Tomcat 插件
  • 3.访问出错
    • 出现404
    • 出现405
    • 出现500
    • 出现空白页面
    • 出现无法访问此网站
    • 小结

1.servlet是什么?

1.Servlet 是⼀款⽤来开发 Java Web 的框架。它是基于 Http 协议交换并且运⾏在 Tomcat ⾥的框架技术。
2.servlet主要工作:

(1)用户的url到程序的映射。
(2)得到Request请求中所有数据。
(3)将服务器端处理的结果返回给用户。

2.第一个servlet项目

创建项目:
使用IDEA创建一个Maven项目。

2.1 创建一个Maven项目(Servlet是基于Maven实现的)

菜单 -> ⽂件 -> 新建项⽬ -> Maven:

选择项⽬要存放的⽬录:



创建好以后框架结构:

2.2 添加Servlet框架(maven项目->servlet项目)

Maven 项⽬创建完毕后, 会⾃动⽣成⼀个 pom.xml ⽂件. 我们需要在 pom.xml 中引⼊ Servlet API 依赖的 jar 包.

在中央仓库:https://mvnrepository.com/

一般选择3.1.0版本

选择的servlet版本要和tomcat匹配:

Servlet 的版本要和 Tomcat 匹配. 如果我们使用Tomcat 8.5, 那么就需要使⽤ Servlet 3.1.0



groupId: 表示组织名称
artifactId: 表示项⽬名称
version: 表示版本号

2.3创建servlet的目录


创建java源代码:

2.4编写代码

在java目录中创建一个类HelloServlet:
(a)继承HttpServlet

(b)设置url映射

©重写doGet/doPost

HelloServlet.java:

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")//ip:port/hello
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置返回类型
        resp.setContentType("text/html");
        //返回的数据
        resp.getWriter().println("Hello,Servlet");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        super.doPost(req, resp);
    }
}

2.5打包项目


点击package:

2.6发布项目到Tomcat(部署程序)

2.7启动Tomcat,访问网站




更方便的运行javaWeb项目

1.下载smart Tomcat插件:
菜单 -> ⽂件 -> Settings:

选择 Plugins, 选择 Marketplace, 搜索 “tomcat”, 点击 “Install”:

注意: 安装过程必须要联⽹.

安装成功之后,重启idea:

配置Smart Tomcat 插件

点击右上角的"Add Configuration":

选择左侧的"Smart Tomcat":

在Name这一栏写一个名字(建议写tomcat版本号),在 Tomcat Server 这⼀栏选择 Tomcat 所在的⽬录. 其他的选项不必做出修改.

其中 Context Path 默认填写的值是项目名称. 这会影响到后面的访问页面。


点击OK之后,右上角如下所示:

点击绿色的三角号,IDEA就会自动编译,部署,启动tomact:

在浏览器执行:

使用Smart Tomcat 部署的时候,我们发现Tomcat的webapps内部并没有被拷贝一个war包,也没有看到解压缩的内容。Smart Tomcat 相当于是在 Tomcat 启动的时候直接引⽤了项⽬中的 webapp 和 target ⽬录。

查看请求:

3.访问出错 出现404

404表示用户访问的资源不存在,大多处情况是URL的路径写的不正确。

1.错误实例1:少写Context Path
通过/hello访问服务器

2.错误实例2:少写了Servlet Path
通过/ServletHelloWord访问服务器

3.错误实例3:Servlet Path写的和URL不匹配

修改代码后要重启tomcat
4.错误实例4:web.xml写错了
清楚web.xml中内容:

重启tomcat服务器,通过浏览器访问URL,可以看到:

出现405

405表示对应的HTTP请求方法没有实现。

1.错误示例:没有实现doGet方法

重启Tomcat服务器,在浏览器中访问,可以看到:

在浏览器地址栏直接输⼊ URL , 会发送⼀个 HTTP GET 请求. 此时就会根据 /ServletHelloWorld/hello 这个路径找到 HelloServlet 这个类. 并且尝试调⽤ HelloServlet 的 doGet ⽅法. 但是如果没有实doGet ⽅法, 就会出现上述现象.

出现500

往往是Servlet代码中抛出异常导致的。

错误示例:
修改代码:

重启Tomcat服务器,访问页面:

在页面上有具体的异常调用栈,空指针异常。

出现空白页面

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

重启服务器,可以看到一个空白页面:

抓包可以看到,响应body中的内容就是空数据:

出现无法访问此网站

一般是Tomcat启动失败了。

错误示例:Servlet Path写错了

Tomcat启动的时候已经提示了相关的错误。
在网页看到的结果:

小结

● 4xx 的状态码表示路径不存在, 往往需要检查 URL 是否正确, 和代码中设定的 Context Path 以及 Servlet Path 是否⼀致.
●5xx 的状态码表示服务器出现错误, 往往需要观察⻚⾯提示的内容和 Tomcat ⾃身的⽇志, 观察是否存 在报错.
●出现连接失败往往意味着 Tomcat 没有正确启动, 也需要观察 Tomcat 的⾃身⽇志是否有错误提示.
● 空⽩⻚⾯这种情况则需要我们使⽤抓包⼯具来分析 HTTP 请求响应的具体交互过程.

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

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

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