用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不存 ...
随机推荐
- 洛谷P1208
#include <iostream>#include <algorithm>#include <cstdio>using namespace std; struc ...
- 【转】1.2 CDN的基本工作过程
1.2 CDN的基本工作过程 使用CDN会极大地简化网站的系统维护工作量,网站维护人员只需将网站内容注入CDN的系统,通过CDN部署在各个物理位置的服务器进行全网分发,就可以实现跨运营商.跨地域的用 ...
- IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转
说好的转型安全领域,可是我还是忍不住要给大家分享这个教程.因为这个问题很常见,大部分人都遇到了(可能你没注意),困扰了我很久,相信这是一篇真正适合你的IIS301跳转教程. 背景 说到301跳转,作为 ...
- ingress 代理方式
一: 单域名 + 多工程 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: test annotations: nginx.in ...
- Git同时使用不同平台代码仓库
问题描述 公司项目使用代码仓库为gitinn/gitlab等,个人项目使用github进行托管,而公司项目和个人项目设置的邮箱和用户名是不同的,而ssh的密钥对又是基于这两个信息生成的,所以此时想要同 ...
- 反向路径过滤——reverse path filter
原文地址:反向路径过滤——reverse path filter 作者:pwp_cu 反向路径过滤——reverse path filter 一.原理先介绍个非对称路由的概念参考<Underst ...
- Android APK 签名比对(转)
Android apk签名的过程 1. 生成MANIFEST.MF文件: 程序遍历update.apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个生成SHA1的数字签名信息,再用Ba ...
- 20155330 《网络攻防》 Exp4 恶意代码分析
20155330 <网络攻防> Exp4 恶意代码分析 实验后回答问题 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操 ...
- java 锁白话
一.锁 1.可见性: 定义:数据对所有线程可见 原因:cpu操作数据时会把数据读取到内存中去,可以理解为值做了备份,但是备份数据和原始数据在后续操作中不一定一致 实现:java使用volite关键字来 ...
- 【HNOI2016】序列
题面 题解 设\([l, r]\)的最小值的位置为\(p\),那么对于左端点在区间\([l, p]\),右端点在区间\([p, r]\)的区间最小值都为\(a[p]\). 这一部分的贡献就是\(a[p ...