Idea创建JavaWeb项目

一、创建项目

1、打开Idea,选择Create New Project

2、选择Java Enterprise,然后选择Web Application

3、填写项目名称和项目位置,点击Next

4、选择Java SDK版本和容器,例如Tomcat,点击Next

5、选择Web Application技术,例如Spring MVC,点击Next

6、填写Web Module名称和路径,点击Finish

二、目录结构

1、src目录下存放Java源代码

/src
|--main
|   |--java
|   |   |--包名
|   |       |--*.java
|   |--resources
|       |--*.xml
|--test
    |--java
        |--包名
            |--*Test.java

2、web目录下存放Web资源和配置文件

/webapp
|--WEB-INF
|   |--classes
|   |   |--*.class
|   |   |--*.properties
|   |--lib
|       |--*.jar
|--*.html
|--*.jsp
|--*.css
|--*.js

三、配置文件

1、web.xml

Web应用程序配置文件,配置Servlet、过滤器、监听器等Web组件。

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>MyWebApp</display-name>
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.example.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.example.LoginFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/user/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
    <listener>
        <listener-class>com.example.StartupListener</listener-class>
    </listener>
</web-app>

2、applicationContext.xml

Spring配置文件,配置Bean、AOP、事务等Spring组件。

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
    <bean id="userService" class="com.example.UserService">
        <property name="userDao" ref="userDao"/>
    </bean>
    <bean id="userDao" class="com.example.UserDao"/>
</beans>

四、例子代码

1、HelloServlet

返回Hello World!

package com.example;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<head><title>Hello Servlet</title></head>");
        out.println("<body><h1>Hello World!</h1></body>");
        out.println("</html>");
    }
}

2、LoginFilter

检查用户是否登录,未登录则跳转到登录页面。

package com.example;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class LoginFilter implements Filter {

    private FilterConfig config;

    @Override
    public void init(FilterConfig config) throws ServletException {
        this.config = config;
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) resp;
        if (request.getSession().getAttribute("user") == null) {
            response.sendRedirect(request.getContextPath() + "/login.jsp");
        } else {
            chain.doFilter(request, response);
        }
    }

    @Override
    public void destroy() {
        this.config = null;
    }
}

3、StartupListener

应用程序启动时初始化Spring容器。

package com.example;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class StartupListener implements ServletContextListener {

    private ClassPathXmlApplicationContext context;

    @Override
    public void contextInitialized(ServletContextEvent event) {
        context = new ClassPathXmlApplicationContext("applicationContext.xml");
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        context.close();
    }
}

五、总结

本文介绍了如何使用Idea创建JavaWeb项目,包括项目创建、目录结构、配置文件和例子代码等方面。通过本文的学习,读者将了解创建JavaWeb项目的流程和相关技术。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/271912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-17 00:07
下一篇 2024-12-17 00:07

相关推荐

  • Idea新建文件夹没有java class的解决方法

    如果你在Idea中新建了一个文件夹,却没有Java Class,应该如何解决呢?下面从多个方面来进行解答。 一、检查Idea设置 首先,我们应该检查Idea的设置是否正确。打开Id…

    编程 2025-04-29
  • 掌握magic-api item.import,为你的项目注入灵魂

    你是否曾经想要导入一个模块,但却不知道如何实现?又或者,你是否在使用magic-api时遇到了无法导入的问题?那么,你来到了正确的地方。在本文中,我们将详细阐述magic-api的…

    编程 2025-04-29
  • IDEA Java发送邮件出现错误解决方案

    IDEA Java是一款常用的Java开发工具,很多开发者都使用它来开发Java应用程序。然而,在使用IDEA Java发送邮件时,有可能会出现一些错误。本文将从多个方面对该错误进…

    编程 2025-04-29
  • Idea中基于某个分支拉新的分支

    本文将从以下几个方面介绍Idea中基于某个分支拉新的分支: 一、创建新分支 在Idea的Git工具中,可以方便地从某个分支创建新分支: git checkout -b <ne…

    编程 2025-04-29
  • GitHub好玩的开源项目

    本文旨在介绍GitHub上一些好玩的开源项目,并提供代码示例供读者参考和学习。 一、Emoji列表 GitHub上有一份完整的Emoji列表,它支持各种平台和设备,方便用户在Git…

    编程 2025-04-28
  • 如何将Java项目分成Modules并使用Git进行版本控制

    本文将向您展示如何将Java项目分成模块,并使用Git对它们进行版本控制。分割Java项目可以使其更容易维护和拓展。Git版本控制还可以让您跟踪项目的发展并协作开发。 一、为什么要…

    编程 2025-04-28
  • Django框架:从简介到项目实战

    本文将从Django的介绍,以及如何搭建Django环境开始,逐步深入到Django模型、视图、模板、表单,最后通过一个小型项目实战,进行综合性的应用,让读者获得更深入的学习。 一…

    编程 2025-04-28
  • Idea创建模块时下面没有启动类的解决方法

    本文将从以下几个方面对Idea创建模块时下面没有启动类进行详细阐述: 一、创建SpringBoot项目时没有启动类的解决方法 在使用Idea创建SpringBoot项目时,有可能会…

    编程 2025-04-28
  • 如何通过IDEA设置gradle的heap大小

    在IDEA中设置gradle的heap大小可以有效提高gradle编译、运行等使用效率,本文将从以下几个方面介绍如何通过IDEA设置gradle的heap大小。 一、设置gradl…

    编程 2025-04-28
  • IIS部署Python项目

    本文将从多个方面详细阐述在IIS上如何部署Python项目。包括安装IIS、安装Python、配置IIS、编写和部署Python代码等内容。 一、安装IIS和Python 在开始进…

    编程 2025-04-28

发表回复

登录后才能评论