用IDEA开发简单的Servlet
最近学习java,主要是servlet相关的内容。IDEA和servlet之前都没有碰过,所以做了一下小实验,走了一些弯路;这里把一个完整的步骤写出来,加深一下印象。
IDEA创建项目步骤
1. 在idea 14种新建一个java项目,类型是web Application
如下图 
将创建的项目命名为DemoServlet
2. 建一个servlet的类,在project栏中的项目src目录上右键新建一个Servlet类,

命名为FirstServlet, 包名为javademo

3. 加入需要依赖的tomcat目录下的servlet-api.jar包

4. 编写FirstServlet的代码,第三步加入了对servlet-api的引用后,在idea就可以智能提示servlet的成员了,写好的简单代码如下:
public class FirstServlet extends javax.servlet.http.HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
}
protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.write("<h1> hello first servlet!</h1>");
}
}
5. 编写web.xml配置文件,我们用向导自动生成servlet,idea会在web.xml中写好 <servlet>的配置,我们还需要增加<servlet-mapping>配置,完成的配置文件如下:
<?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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>javademo.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
</web-app>
至此, 一个简单的servlet网页程序就编写完成了,接下来我们看看如何部署。
在tomcat上部署
我在window上用的是xampp自带的tomcat,主要看下如何在tomcat下部署我们刚刚创建的FirstServlet web应用。
1. 将源码目录里包含index.jsp的web目录拷贝到tomcat的webapps目录下,重命名为FirstServlet
2. 在这个目录的WEB-INF目录下增加一个classes的目录
3. 在idea中编译工程后,在out目录下有编译好的.class文件, 我们将项目产出目录out\production\ServletDemo下的javademo文件夹拷贝到第二步创建的classes目录中,最后的目录结构如下

此处注意,classes中的目录结构要和包保持一致
4. 重启tomcat, 就可以在http://127.0.0.1:8080/FirstServlet/demo 这个地址看到我们的servlet页面了。
需要注意这个url的路径,FirstServlet是在webapps的目录名,demo是在web.xml中的servlet-mapping中控制的
用IDEA开发简单的Servlet的更多相关文章
- 开发部署一个简单的Servlet
Servlet是一个执行在服务器端的Java Class文件,载入前必须先将Servlet程序代码编译成.class文件,然后将此class文件放在servlet Engline路径下.Servlet ...
- 深入剖析tomcat之一个简单的servlet容器
上一篇,我们讲解了如果开发一个简单的Http服务器,这一篇,我们扩展一下,让我们的服务器具备servlet的解析功能. 简单介绍下Servlet接口 如果我们想要自定义一个Servlet,那么我们必须 ...
- Servlet复习1: 一个简单的Servlet的使用
Servlet学习 1. Servlet与JSP的关系 2. Servlet的声明周期 3. 一个简单的Servlet的使用方法 什么是Servlet? 什么又是JSP? 继承了javax.servl ...
- 通过Jetty搭建一个简单的Servlet运行环境
最近在做一些简单的Servlet开发的时候,感觉每次调试的时候都要发布到tomcat上很麻烦,把程序共享给同事也很麻烦,需要帮他设置本地的tomcat环境. 在网上找了找其他的Servlet运行环境, ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- 用Spring MVC开发简单的Web应用程序
1 工具与环境 借助Eclipse4.3 + Maven3.0.3构建Java Web应用程序.使用Maven内置的servlet 容器jetty,不需手工集成Web服务器到Eclipse.还帮我们自 ...
- 如何使用eclipse创建简单的servlet
Servlet是一种基于java开发的服务器程序,可以对外公布服务,如果是浏览器应用,可以通过浏览器打开网址的方式查看服务.创建servlet要继承httpservlet,并且在web.xml中配置拦 ...
- 从零开始学Python08作业思路:开发简单的FTP
一,作业要求 开发简单的FTP 1,用户登录 2,上传/下载文件 3,不同用户家目录不同 4,查看当前目录下文件 5,充分使用面向对象 二,程序文件清单 Folder目录:用户上传文件家目录 db目录 ...
- 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在
由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决“软件包 javax.servlet不存 ...
随机推荐
- css多种方法实现已知宽度和未知宽度的元素水平垂直居中
// html <div class="box-wrapper"> <div class="box"> 内部box <p>更 ...
- Sublime2 DocBlocker插件在自动补全注释时输出自定义作者和当前时间等信息
Sublime在进行前端开发时非常棒,当然也少不了众多的插件支持,DocBlocker是在Sublime平台上开发一款自动补全代码插件,支持JavaScript (including ES6), PH ...
- jQuery 实现复选框的全选与反选
<script> //实现全选与反选 $(".allAndNotAll").click(function () { if ($(this).prop("che ...
- PHP错误提示的关闭方法详解
关闭PHP错误脚本提示是程序上线了必须做的一件事情,就是不管程序怎么报错我们都不能让错误日志在服务器上给大家看到,下面我来总结两种关闭PHP错误脚本提示的具体方法 最简单的办法就是直接在php ...
- istio1.0.2配置
项目的组件相对比较复杂,原有的一些选项是靠 ConfigMap 以及 istioctl 分别调整的,现在通过重新设计的Helm Chart,安装选项用values.yml或者 helm 命令行的方式来 ...
- 【测试123】ISTQB AL
近一年时间加强了金融领域基础知识,希望能顺利获得FRM认证. 接下来因为工作需要,在测试工程师的角色上有所深入发展. 仔细想了下,一是管理上的角色转换,如何协调各个不同测试级别,以及如何成为一个称职满 ...
- svn 更新提交文件冲突
文件冲突定义:svn up更新服务器文档到本地的时候发现本地的文件有所改动,和svn服务器不同步 服务器会报冲突,让你觉得已谁的为准,根据实际情况我们需要选择是以服务器还是以本地代码为准 报错: Co ...
- JAVA框架Struts2 Action类
一.Action书写方式: 接口地址:https://struts.apache.org/maven/struts2-core/apidocs/index.html Action类就是一个POJO类. ...
- Java并发(一)并发编程的挑战
目录 一.上下文切换 1. 多线程一定快吗 2. 测试上下文切换次数和时长 3. 如何减少上下文切换 4. 减少上下文切换实战 二.死锁 三.资源限制的挑战 四.本章小结 并发编程的目的是为了让程序运 ...
- 遍历目录删除指定MD5值的文件
工作需要实现一个查找出指定目录下md5值与excel表格中md5值相同的文件然后删掉的功能.我是这样做的:首先遍历指定目录,计算该目录下所有文件的md5值,以文件路径为key,md5值为value保存 ...