J2EE Servlet基础在浏览器上运行HelloServlet的方法

 更新时间:2020年10月17日 10:17:44   作者:灰烬様  
这篇文章主要介绍了J2EE Servlet基础在浏览器上运行HelloServlet的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Servlet

servlet本身不能独立运行,需要在一个web应用中运行的
而一个web应用是部署在tomcat中。开发一个servlet需要

  • 创建web应用项目
  • 编写servlet代码
  • 部署到tomcat中

IDEA操作具体流程

1.创建名为j2ee的项目

2.导入servlet-api.jar包(Servlet需要用到包中的相关类)
附上下载链接

链接: https://pan.baidu.com/s/1cb5BqQ1TrKcPiaf6zuPLFQ 提取码: xtq6 

导入:
右键项目 open module setting

在这里插入图片描述

3.编写HelloServlet类。HelloServlet继承了 HttpServlet
并且提供了一个doGet方法。在浏览器中输入地址提交数据的方式是GET。所以该Servlet需要提供一个对应的doGet方法

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;

public class HelloServlet extends HttpServlet {
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp){
  try {
   resp.getWriter().println("<h1>Hello Servlet!</h1>");
   resp.getWriter().println(new Date());
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}
  • get与post的区别
  • get 访问某个地址是get方式,提交的数据会在浏览器显示出来。不可以提交二进制数据,比如上传文件
  • post 在form中通过 method=“post” 显示指定。可以提交二进制文件

4.配置web.xml 目录web/WEB-INF下创建web.xml文件。
servlet-mapping下建立了映射关系。使得/hello路径映射到HelloServlet这个类

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 <servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>HelloServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>HelloServlet</servlet-name>
  <url-pattern>/hello</url-pattern>
 </servlet-mapping>
</web-app>

5.配置tomcat的server.xml。在host标签下加入Context标签。其中path="/" 就表示直接通过localhost/hello就可以访问网页。因为配置了 “/” ,会与root目录冲突。所以在配置完成后启动会发现root目录消失。

在host标签下加入(mac使用/分隔,windows使用\,path使用/)

<Host name="localhost" appBase="webapps"
   unpackWARs="true" autoDeploy="true">
   <Context path="/" docBase="//Users//ryu//Desktop//working//github-project//j2ee//web" debug="0" reloadable="false" />
 </Host>

重启tomcat。docBase是j2ee的路径,appBase不需要变,虽然项目没有搭建在在tomcat的webapps下,但是docBase指向了我们应用的目录。

一些知识点

关于tomcat\work\下的Catalina

当tomcat启动的时候,就会把webapps这个文件夹下的项目,进行编译,然后存放到Catalina目录下

目录结构

在这里插入图片描述

jsp或html等文件是直属于Webcontent,与【META-INF】【WEB-INF】平级,不要将jsp文件放置到【WEB-INF】下面,WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。放错会引起404错误

关于启动

在IDEA中启动,会将项目中的java文件(HelloServlet)编译为class文件。所以如果是在控制台下运行tomcat的bin目录下的startup文件启动tomcat,会因为缺少编译过程导致运行失败【HTTP状态 500 - 内部服务器错误】在这里插入图片描述

在idea中运行

在这里插入图片描述

到此这篇关于J2EE Servlet基础在浏览器上运行HelloServlet的文章就介绍到这了,更多相关J2EE Servlet浏览器上运行HelloServlet内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot2底层注解@Import用法详解

    SpringBoot2底层注解@Import用法详解

    这篇文章主要为大家介绍了SpringBoot2底层注解@Import用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Maven设置JDK版本的两种方法实现

    Maven设置JDK版本的两种方法实现

    本文主要介绍了Maven设置JDK版本的两种方法实现,是通过Apache Maven Compiler Plugin插件实现的,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Java中List add添加不同类型元素的讲解

    Java中List add添加不同类型元素的讲解

    今天小编就为大家分享一篇关于java的List add不同类型的对象,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Intellij Idea新建SpringBoot项目方式

    Intellij Idea新建SpringBoot项目方式

    这篇文章主要介绍了Intellij Idea新建SpringBoot项目方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • Idea实现接口的方法上无法添加@Override注解的解决方案

    Idea实现接口的方法上无法添加@Override注解的解决方案

    文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Language level到支持该注解的版本,以及在pom.xml文件中指定maven-compiler-plugin的版本以解决自动更新后的问题
    2025-02-02
  • mybatisplus 实现接口MetaObjectHandler自动填充字段值

    mybatisplus 实现接口MetaObjectHandler自动填充字段值

    MetaObjectHandler是MyBatis-Plus提供的一个接口,本文主要介绍了mybatisplus 实现接口MetaObjectHandler自动填充字段值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • 深入分析java文件路径的详解

    深入分析java文件路径的详解

    本篇文章是对java文件路径进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java经典算法汇总之顺序查找(Sequential Search)

    Java经典算法汇总之顺序查找(Sequential Search)

    Java查找算法之顺序查找说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表。 下面我们来详细说明下
    2016-04-04
  • Java关键字、标识符、常量、变量语法详解

    Java关键字、标识符、常量、变量语法详解

    这篇文章主要为大家详细介绍了Java关键字、标识符、常量、变量等基础语法,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Java中的LinkedList底层源码分析

    Java中的LinkedList底层源码分析

    这篇文章主要介绍了Java中的LinkedList底层源码分析,底层基于双向链表,往LinkedList中间插入元素时,不需要移动大量的元素,只需要修改前后节点的指针,速度快,需要的朋友可以参考下
    2023-12-12

最新评论