创建一个javaWeb Project
文章目录
- 前言
- 一、eclipse创建web工程
- 二、web.xml
- servlet.xml
- < mvc:annotation-driven/ > Spring MVC 驱动
- < context:component - scan >:扫描
- < bean > ... < /bean >
- < import > config/beans.xml
- beans.xml
- mybatis.xml
前言
javaWeb学生管理系统实现
一、eclipse创建web工程
File -> New -> Dynamic Web Project
记得创建完成后点击Properties,修改Resource里的编码为UTF-8
windows默认是GBK,为了避免后续乱码,后续统一用UTF-8
再点击Configure build path,把需要的jar包导入进来
在工程文件夹下有下面几个文件夹
src:后端开发文件
JRE System Library [jre - 1.8]:Java 运行时环境库,版本为 1.8,提供 Java 程序运行所需的类库等资源。
Apache Tomcat v8.0:一个开源的 Web 应用服务器,用于部署和运行 Java Web 应用程序,版本为 8.0 。
WebContent:在 Java Web 项目中,通常用于存放 Web 相关的资源,如 HTML、CSS、JavaScript 文件以及 JSP 文件等。
META - INF:用于存放项目的元数据,比如配置信息等。
WEB - INF:是 Java Web 应用程序的重要目录,通常包含 web.xml(配置文件)、classes(存放编译后的 class 文件)、lib(存放项目依赖的 jar 包)等。
lib文件夹同样加入所需的jar包,作用与configure build path里的作用有所不同。总之,都添加避免差错。
WEB-INF里放置web.xml和servlet.xml
二、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>0208</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
< ?xml> 1.0xml版本 encoding编码UTF-8
< web-app …version=“3.1” > 每个Project的web.xml复制这段即可
< servlet-name >:为 Servlet 定义一个名称helloworld,用于在整个 Web 应用中唯一标识该 Servlet。
< servlet-class >:指定该 Servlet 的实现类为org.springframework.web.servlet.DispatcherServlet,这是 Spring Web MVC 框架中的前端控制器,负责接收所有的 Web 请求,并将请求分发给相应的处理器进行处理。
servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
<mvc:annotation-driven/>
<context:component-scan base-package="com.njupt"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<import resource="classpath:config/beans.xml"/>
<mvc:resources location="/imgs/" mapping="/imgs/**"/>
</beans>
< mvc >之前的每次使用直接复制
< mvc:annotation-driven/ > Spring MVC 驱动
启用 Spring MVC 的注解驱动功能。这会自动注册一些关键的 Spring MVC 组件,如RequestMappingHandlerMapping、RequestMappingHandlerAdapter等,使得可以使用@RequestMapping、@Controller等注解来开发控制器,简化了 Spring MVC 的配置。
< context:component - scan >:扫描
< context:component-scan base-package=“com.njupt”/ >
开启组件扫描,在com.njupt包及其子包下扫描标记了@Component、@Controller、@Service、@Repository等注解的类,并将它们注册为 Spring 容器中的 Bean。这是自动发现和注册应用组件的重要机制。
src里的文件一般设为三级,比如com.njupt.controller包,方便做扫描等操作。
< bean > … < /bean >
复制使用即可
定义了一个InternalResourceViewResolver视图解析器。
viewClass指定视图类为JstlView,用于支持 JSTL(JavaServer Pages Standard Tag Library)。
prefix指定视图文件的前缀为/,表示视图文件在 Web 应用的根目录下。
suffix指定视图文件的后缀为.jsp,即 Spring MVC 会将逻辑视图名解析为对应的.jsp文件路径。
< import > config/beans.xml
从类路径下的config目录中导入beans.xml配置文件,这有助于将配置拆分到多个文件中,提高配置的可维护性和组织性。
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">
<!-- <aop:aspectj-autoproxy /> -->
<bean id="dataSourceObj" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/studentsys?characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value=""></property>
</bean>
<!-- 配置sqlsessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config/mybatis.xml"></property>
<property name="dataSource" ref="dataSourceObj"></property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.njupt.mapper"></property>
</bean>
<!-- 文件上传 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="102400000"/> <!-- 设置文件上传最大值字节: -->
</bean>
</beans>
< bean database… > 连接数据库
< property name=“url” value=“jdbc:mysql://localhost:3306/studentsys?characterEncoding=UTF-8”>
连接studentsys数据库,编码形式是UTF-8
< bean class=“org.mybatis.spring.mapper.MapperScannerConfigurer”>
定义了一个org.mybatis.spring.mapper.MapperScannerConfigurer类型的 Bean,用于扫描指定包(com.njupt.mapper)下的 Mapper 接口,并自动生成 Mapper 代理对象,将其注册到 Spring 容器中,方便在其他组件中通过依赖注入使用。
< bean id=“sqlSessionFactory” class=“org.mybatis.spring.SqlSessionFactoryBean”>
id为sqlSessionFactory,定义了一个org.mybatis.spring.SqlSessionFactoryBean类型的 Bean。SqlSessionFactory是 MyBatis 的核心组件,负责创建SqlSession。
configLocation指定 MyBatis 的配置文件位置,这里从类路径下的config目录加载 mybatis.xml 文件。
dataSource引用前面定义的dataSourceObj,为SqlSessionFactory提供数据库连接。
mybatis.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 别名 以类名作为全限定名 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING" />
</settings>
<typeAliases>
<package name="com.njupt.po"/>
</typeAliases>
</configuration>
前面的复制即可
< typeAliases>
< package name=“com.njupt.po”/>
< /typeAliases >
< typeAliases >标签用于定义类型别名,目的是简化 MyBatis 配置文件中对 Java 类型的引用。
< package >子标签指定了一个包名com.njupt.po。MyBatis 会自动扫描该包下的所有 Java 类,并为每个类默认创建一个别名。别名默认是类名,首字母不区分大小写。例如,com.njupt.po.User类的别名可以是user或User。这样在 MyBatis 的映射文件(如Mapper.xml)中使用这些类型时,就可以直接使用别名,而无需写完整的类名,使配置更加简洁。
com.njupt.po里面写po类