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中的标签,运行程序后404页面,参考博客:Servlet使用注解配置URl提示404错误

在web.xml的标签中使用属性metadate-complete="false"之后即可运行成功。

<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步骤的主要内容,如果未能解决你的问题,请参考以下文章

maven项目怎么创建servlet

idea servlet不能创建main方法?

创建Servlet项目(IDEA版)

关于intelliJ idea创建servlet提示cannot resolve symbol‘servlet’的问题

idea快速跳到webservlet

tomcat和servlet快速入门教程!!!