一、創建項目
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/zh-hant/n/271912.html
微信掃一掃
支付寶掃一掃