idea创建servlet步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了idea创建servlet步骤相关的知识,希望对你有一定的参考价值。
参考技术A 1、CreateNewProject->JavaEE->WebApplication->项目命名->Finish。。2、项目创建后初始目录为:。
3、web/WEB-INF中添加classes、lib、src文件夹。
File->ProjectStructture->Modules。
在web目录下新建WEB-INF目录,并在WEB-INF目录下新建3个目录:classes、lib、src,其中src右键设为source。
src用于存放源Servlet的java文件,classes用来存放编译后输出的class文件,lib用于存放第三方jar包。
4、配置classes与lib文件夹路径。
File->ProjectStructure->Module->Paths->Usemodulecompileoutputpath->将Outputpath和Testoutputpath都选择刚刚创建的classes文件夹。
接着选择Dependencies->将ModuleSDK选择为1.8->点击右边的“+”号->选择“JarsorDirectories”->选择刚刚创建的lib文件夹->选择“jardirectory”。
5、配置tomcat容器。
Run->EditConfiguration->点击左上角“+”号->“TomcatServer”->“Local”。
在Name处输入新的服务名,点击Applicationserver后面的Configure...,弹出TomcatServer窗口,选择本地安装的Tomcat目录,点击Apply->OK。
取消勾选Afterlaunch,设置HTTPport和JMXport(默认值即可),点击Apply->OK。
选择Deployment->点击右边的“+”号->选择Artifact->OK。
6、编辑index.jsp文件。
7、运行tomcat,在浏览器中输入localhost:8080/index.jsp。
运行成功。
8、web目录下新建form.jsp,编写提交表单的页面。
在浏览器中输入localhost:8080/form.jsp。
9、编写Servlet(接收form.jsp表单提交参数):在WEB-INF下src文件夹添加Java文件,命名为FirstServlet。
此时会报错,从tomcat/lib目录下将servlet-api.jar拷贝到WEB_INF/lib下,则错误消失。
10、编译Servlet源java文件。
Build->BuildModule,编译成功后在WEB-INF/classes下生成Servlet的class文件。
11、配置Servlet:两种方式,这里采用web.xml文件配置。
从tomcat/webapps应用拷一个web.xml到本项目的web/WEB-INF目录中,编写web.xml文件。
将form.jsp中的表单提交指向此Servlet在web.xml中映射的url地址,此处为aa。
12、浏览器输入localhost:8080/form.jsp填入参数后跳转到Servlet,显示成功。
使用IDEA创建一个Servlet应用程序
使用IDEA创建一个Servlet应用程序
第一步:创建web应用
选择web application应用,之后填写项目名称等。
第二步:项目配置
在WEB-INF目录下创建两个文件夹:classes和lib,其中classes是Servlet类和其他JAVA类必须存放的位置,类以下的目录反映了类包的结构。lib是Servlet应用程序所需JAR文件要在这里部署。但是Servlet API的JAR文件不需要在这里部署,容器中已经有了它的备份。
2.1 修改class文件的输出目录
选择菜单File ---> Project Structure.. --->选择modules ---->path选项 将class文件的输出改为之前创建的classes目录
2.2 修改jar文件的存储
还是在modules菜单下,选择Dependencies 选项卡 ---> 点击右侧的 “+”号,选择“JARs or directories…”,选择创建的lib目录
目录改为我们在WEB-INF下创建的lib目录,选择如下:
第三步:编写Servlet程序
在src目录下,创建一个servlet文件,其内容如下:
package app01a;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "MyServlet",urlPatterns = "/my")
public class MyServlet implements Servlet
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException
this.servletConfig = servletConfig;
@Override
public ServletConfig getServletConfig()
return servletConfig;
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
String servletName = servletConfig.getServletName();
//网页响应类型,浏览器将其渲染为HTML格式
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.println("<html><head></head>" + "<body> Hello from " + servletName + "</body></html>");
@Override
public String getServletInfo()
return "My Servlet";
@Override
public void destroy()
第四步:配置Tomcat
选择Edit Configurations..
这里要注意JRE的路径,不要选择默认,要选择安装JRE的路径,我在运行的时候出现了1099端口被占用的情况,但是用netstat -ano|findstr 1099并没有找到任务PID,百度后说是JRE的版本路径要严格一致。
同时,Deployment标签下修改访问的URL路径。
参考:IDEA的Tomcat配置Web的项目创建以及Servlet简单运行
第五步:运行程序
访问localhost:8080/应用名称/servlet名
遇到的问题
启动TomCat时,日志出现乱码
百度了各种博客,修改了一大堆还是继续乱码,偶然间因为1099端口占用,去tomcat/bin目录下启动tomcat时,发现win10的命令行下也是乱码情况,参考的博客,完美解决了问题:
解决最新版tomcat在window10下启动可能出现启动日志乱码的情况
关于web.xml的错误
在第四步配置Tomcat后,我们访问这个ServletTest的路径变成了http://localhost:8080/my,这样访问的路径是WEB-INF下的index.jsp文件,在web.xml中配置了servlet-mapping后,才能访问对应的servlet对象
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>app01a.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
访问http://localhost:8080/my/test可以访问对应的servlet对象,调用service方法,浏览器应该渲染出service方法中的HTML内容。但是访问时出现了错误 错误代码500
中午睡了一觉起来,没问题了。。。。。先记录一下别的错误,如果下次再遇到,再记录叭(」><)」
Servlet使用注解
使用注解WebServlet时,刚开始只是取代了web.xml中的
在web.xml的
<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_4_0.xsd"
version="4.0"
metadata-complete ="true">
原因:
Servlet 3.0 的部署描述文件 web.xml 的顶层标签
有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragment.xml 的扫描,亦即禁用可插性支持;如果不配置该属性,或者将其设置为 false,则表示启用注解支持(和可插性支持)。
至此,一个简单:(的Servlet应用终于调通辽。。。。
以上是关于idea创建servlet步骤的主要内容,如果未能解决你的问题,请参考以下文章