创建一个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.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类

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯—单片机】第十一届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记

第十一届省赛真题代码部分 前言赛题代码思路笔记竞赛板配置内部振荡器频率设定键盘工作模式跳线扩展方式跳线 建立模板明确设计要求和初始状态显示功能部分数据界面第一部分第二部分第三部分调试时发现的问题 参数设置界面第一部分第二部分和第四部分第三部分和第五部分 按键功…

寒假2.7

题解 web&#xff1a;[HCTF 2018]WarmUp 打开是张表情包 看一下源代码 访问source.php&#xff0c;得到完整代码 代码审计 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.p…

python康威生命游戏的图形化界面实现

康威生命游戏&#xff08;Conway’s Game of Life&#xff09;是由英国数学家约翰何顿康威&#xff08;John Horton Conway&#xff09;在1970年发明的一款零玩家的细胞自动机模拟游戏。尽管它的名字中有“游戏”&#xff0c;但实际上它并不需要玩家参与操作&#xff0c;而是通…

【数据结构】链表应用-链表重新排序

重新排序 反转链表预期实现思路解题过程code力扣代码核心代码完整代码 总结 删除链表中间节点代码解惑 链表重新排序题目描述解题思路解题过程复杂度代码力扣代码完整代码 反转链表 预期实现 思路 你选用何种方法解题&#xff1f; 我选用了迭代法来反转链表。这是一种经典且高…

pytest-xdist 进行多进程并发测试!

在软件开发过程中&#xff0c;测试是确保代码质量和可靠性的关键步骤。随着项目规模的扩大和复杂性的增加&#xff0c;测试用例的执行效率变得尤为重要。为了加速测试过程&#xff0c;特别是对于一些可以并行执行的测试用 例&#xff0c;pytest-xdist 提供了一种强大的工具&…

mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable

MySQL8.0安装包mysql-8.0.1-winx64进行安装&#xff0c;提示&#xff1a;This application requires Visual Studio 2019 x64Redistributable, Please install the Redistributable then runthis installer again。出现这个错误是因为我们电脑缺少Microsoft Visual C 这个程序&…

【MySQL】深度理解事务的隔离性:全面讲解事务的四种隔离级别

**前言&#xff1a;**上节内容我们主要说了如果没有设置保存点&#xff0c; 也可以回滚&#xff0c;但是只能回滚到事务的开始。直接使用rollback的前提是事务还没有提交。并且如果一个事务被提交了&#xff0c;就不可以回退。同时我们也可以使用savepoint设置回滚点。 可以自己…

项目实战 —— HTTP服务器设计与实现

目录 一&#xff0c;项目介绍 二&#xff0c;背景知识补充 2.1 http特点 2.2 URI&#xff0c;URL&#xff0c;URN 2.3 http请求方法 三&#xff0c;前置功能实现 3.1 日志编写 3.2 封装相关套接字 3.3 http请求结构设计 3.4 http响应结构设计 3.5 http服务器主体逻辑…

GitHub Copilot:智能助手觉醒

GitHub Copilot: The agent awakens - The GitHub Blog github copilot 官方文档刚刚宣布支持 agent 模式&#xff01; 这一模式和之前的 chat 方式不同&#xff0c;类似于 cursor 可以根据需求直接运行、调试和修改代码 这一模式在 preview 版本可以使用&#xff0c;并且需…

网络安全威胁框架与入侵分析模型概述

引言 “网络安全攻防的本质是人与人之间的对抗&#xff0c;每一次入侵背后都有一个实体&#xff08;个人或组织&#xff09;”。这一经典观点概括了网络攻防的深层本质。无论是APT&#xff08;高级持续性威胁&#xff09;攻击、零日漏洞利用&#xff0c;还是简单的钓鱼攻击&am…

深入浅出谈VR(虚拟现实、VR镜头)

1、VR是什么鬼&#xff1f; 近两年VR这次词火遍网上网下&#xff0c;到底什么是VR&#xff1f;VR是“Virtual Reality”&#xff0c;中文名字是虚拟现实&#xff0c;是指采用计算机技术为核心的现代高科技手段生成一种虚拟环境&#xff0c;用户借助特殊的输入/输出设备&#x…

postman免登录版本,实测可用(解决一直卡在登录界面无法进入的问题)

一、背景 2025今年开工后&#xff0c;打开postman&#xff0c;一直提示需要登录&#xff0c;但是一直卡在登录界面&#xff0c;好几个人的postman都是这样的情况&#xff0c;不知道是什么原因。 折腾几小时无果&#xff0c;网上下载了各种版本都试了&#xff0c;最新的版本也…

Unity中Spine骨骼动画完全指南:从API详解到避坑实战

Unity中Spine骨骼动画完全指南&#xff1a;从API详解到避坑实战 一、为什么要选择Spine&#xff1f; Spine作为专业的2D骨骼动画工具&#xff0c;相比传统帧动画可节省90%资源量。在Unity中的典型应用场景包括&#xff1a; 角色换装系统&#xff08;通过插槽替换部件&#xf…

HTTP异步Client源码解析

我们知道Netty作为高性能通信框架&#xff0c;优点在于内部封装了管道的连接通信等操作&#xff0c;用户只需要调用封装好的接口&#xff0c;便可以很便捷的进行高并发通信。类似&#xff0c;在Http请求时&#xff0c;我们通过调用HttpClient&#xff0c;内部使用java NIO技术&…

Golang:Go 1.23 版本新特性介绍

流行的编程语言Go已经发布了1.23版本&#xff0c;带来了许多改进、优化和新特性。在Go 1.22发布六个月后&#xff0c;这次更新增强了工具链、运行时和库&#xff0c;同时保持了向后兼容性。 Go 1.23 的新增特性主要包括语言特性、工具链改进、标准库更新等方面&#xff0c;以下…

无界构建微前端?NO!NO!NO!多系统融合思路!

文章目录 微前端理解1、微前端概念2、微前端特性3、微前端方案a、iframeb、qiankun --> 使用比较复杂 --> 自己写对vite的插件c、micro-app --> 京东开发 --> 对vite支持更拉跨d、EMP 方案--> 必须使用 webpack5 --> 很多人感觉不是微前端 --> 去中心化方…

SQL Server 数据库迁移到 MySQL 的完整指南

文章目录 引言一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据 二、迁移工具的选择2.1 使用 MySQL Workbench2.2 使用第三方工具2.3 手动迁移 三、迁移步骤3.1 导出 SQL Server 数据库结构3.2 转换数据类型和语法3.3 导入 MySQL 数据库3.4 迁移数据3.5 迁移存…

RabbitMQ深度探索:死信队列

死信队列产生背景&#xff1a; RabbitMQ 死信队列俗称 备胎队列&#xff1a;消息中间件因为某种原因拒收该消息后&#xff0c;可以转移到私信队列中存放&#xff0c;死信队列也可以有交换机和路由 key 等 生产死信队列的原因&#xff1a; 消息投递到 MQ 存放&#xff0c;消息已…

蓝桥算法基础2

位运算 按位与&#xff0c;x&1x%2.因为1不论和几位二进制与&#xff0c;都只有最后一位为1&#xff0c;前面都是0&#xff0c;那么&前面也都为0&#xff0c;只有最后一位&#xff0c;若为1那么2的0次方为1&#xff0c;该数一定为奇数&#xff0c;与取余结果同&#xff…

B站自研的第二代视频连麦系统(上)

导读 本系列文章将从客户端、服务器以及音视频编码优化三个层面&#xff0c;介绍如何基于WebRTC构建视频连麦系统。希望通过这一系列的讲解&#xff0c;帮助开发者更全面地了解 WebRTC 的核心技术与实践应用。 背景 在文章《B站在实时音视频技术领域的探索与实践》中&#xff…