文章目录
- 前言
- 一、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.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://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类