实习第四天

上午老师简单复习了一下ssm框架,然后开始带我们一步一步实践。老师带我们学完了查询,后面的增删改需要我们自己编写。下午我们就在这自己编写增删改。

目录

  1. ssm框架
  2. 增删查改实践

一、ssm框架

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

1.Spring简介

Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由Rod Johnson在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

A.控制反转(IOC)是什么呢?

IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。
[注意]:面试的时候,如果有条件,画图,这样更加显得你懂了

B.面向切面(AOP)又是什么呢?

首先,需要说明的一点,AOP只是Spring的特性,它就像OOP一样是一种编程思想,并不是某一种技术,AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。

实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。

[简单点解释],比方说你想在你的biz层所有类中都加上一个打印‘你好,AOP’的功能这你经可以用aop思想来做,你先写个类写个方法,方法经实现打印‘你好,AOP’让后你Ioc这个类 ref=“biz.*”让每个类都注入。

2.Spring MVC简介

Spring MVC属于Spring Framework的后续产品,已经融合在Spring Web Flow里面,它原生支持的Spring特性,让开发变得非常简单规范。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

3.MyBatis简介

MyBatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。可以这么理解,MyBatis是一个用来帮你管理数据增删改查的框架。

ssm简介转载自 https://fei-wang.iteye.com/blog/2358150

二、增删查改实践

环境配置

  • jdk1.8
  • idea2018
  • maven3.6.0
  • tomcat7.0
  • mysql5.5

1、新建项目

先选择新建的工程

填写项目名称

修改配置,maven选择自己安装的版本。再点properties右边的+号添加,具体如图

点击finish完成创建

2、新建项目文件夹

按下图文件结构创建文件夹

3、自定义UserInfo类

先对pom.xml进行配置,在此文件中配置项目需要用到的jar包

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.zhongruan</groupId><artifactId>test_ssm_day4</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>test_ssm_day4 Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><!-- spring版本号 --><spring.version>5.0.2.RELEASE</spring.version><!-- mybatis版本号 --><mybatis.version>3.2.6</mybatis.version><!-- log4j日志文件管理包版本 --><slf4j.version>1.7.7</slf4j.version><log4j.version>1.2.17</log4j.version><c3p0.version>0.9.5.2</c3p0.version><taglibs.version>1.1.2</taglibs.version></properties><dependencies><!-- spring核心包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!-- mybatis核心包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!-- mybatis/spring包 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency><!-- 导入java ee jar 包 --><dependency><groupId>javax</groupId><artifactId>javaee-api</artifactId><version>7.0</version></dependency><!-- 导入Mysql数据库链接jar包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.30</version></dependency><!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.2.2</version></dependency><!-- JSTL标签类 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- 日志文件管理包 --><!-- log start --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!-- 数据连接池 --><dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>${c3p0.version}</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${taglibs.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- 导入servlet-api/jsp --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version><scope>provided</scope></dependency></dependencies><build><finalName>test_ssm_day4</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

项目数据库库建表语言(mysql 5.5)

CREATE TABLE `userinfo` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(45) NOT NULL,`password` varchar(45) NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8

下面开始写java代码:

  • 在bean文件夹下创建UserInfo.java
package com.zhongruan.bean;public class UserInfo {private int id;private String username;private String password;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "UserInfo{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +'}';}
}
  • 在service包中新建接口 IUserService.java
package com.zhongruan.service;import com.zhongruan.bean.UserInfo;import java.util.List;public interface IUserService {List<UserInfo> findAll();int addUser(UserInfo userInfo);int deleteUser(int id);int updateUser(UserInfo userInfo);UserInfo findUserById(int id);}
  • 在service包下新建impl包,并在此包中新建UserServiceImpl.java
package com.zhongruan.service.impl;import com.zhongruan.bean.UserInfo;
import com.zhongruan.dao.IUserDao;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service    //将service加入Spring容器
public class UserServiceImpl implements IUserService {//从Spring容器中取出dao@AutowiredIUserDao userDao;@Overridepublic List<UserInfo> findAll(){return userDao.findAll();}@Overridepublic int addUser(UserInfo userInfo){return userDao.addUser(userInfo);}@Overridepublic int deleteUser(int id){return userDao.deleteUser(id);}@Overridepublic int updateUser(UserInfo userInfo){return userDao.updateUser(userInfo);}@Overridepublic UserInfo findUserById(int id){return userDao.findUserById(id);}}
  • 在dao包中新建接口 IUserDao.java
package com.zhongruan.dao;import com.zhongruan.bean.UserInfo;import java.util.List;public interface IUserDao {List<UserInfo> findAll();int addUser(UserInfo userInfo);int deleteUser(int id);UserInfo findUserById(int id);int updateUser(UserInfo userInfo);
}
  • 在controller包中新建 UserController.java
package com.zhongruan.controller;import com.zhongruan.bean.UserInfo;
import com.zhongruan.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;import java.util.List;@Controller
@RequestMapping("user")
public class UserController {@Autowiredprivate IUserService userService;@RequestMapping("/findAll.do")public ModelAndView findAll(){List<UserInfo> userInfos = userService.findAll();ModelAndView mv = new ModelAndView();mv.addObject("ui", userInfos);mv.setViewName("allUser");return mv;}@RequestMapping("/toAddUser")public String toAddUser(){return "addUser";}@RequestMapping(value = "/addUser.do", method = RequestMethod.POST)public ModelAndView addUser(UserInfo userInfo){userService.addUser(userInfo);ModelAndView mv = new ModelAndView();mv.setViewName("redirect:/user/findAll.do");return mv;}@RequestMapping("/del.do")public ModelAndView deleteUser(int id){userService.deleteUser(id);ModelAndView mv = new ModelAndView();mv.setViewName("redirect:/user/findAll.do");return mv;}@RequestMapping("/toUpdateUser.do")public ModelAndView toUpdateUser(int id){ModelAndView mv = new ModelAndView();mv.addObject("userInfo", userService.findUserById(id));mv.setViewName("updateUser");return mv;}@RequestMapping(value = "/updateUser.do", method = RequestMethod.POST)public ModelAndView updateUser(UserInfo userInfo){userService.updateUser(userInfo);userInfo = userService.findUserById(userInfo.getId());ModelAndView mv = new ModelAndView();mv.addObject("userInfo", userInfo);mv.setViewName("redirect:/user/findAll.do");return mv;}
}
  • 在resource/mapper包下新建 UserMapper.xml(mybatis框架mapper代理开发配置文件)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.zhongruan.dao.IUserDao" ><select id="findAll" resultType="com.zhongruan.bean.UserInfo">select * from userinfo</select><insert id="addUser" parameterType="com.zhongruan.bean.UserInfo">insert into userinfo(id,username,password) values (#{id},#{username},#{password})</insert><delete id="deleteUser" parameterType="int">delete from userinfo where id=#{id}</delete><select id="findUserById" resultType="com.zhongruan.bean.UserInfo" parameterType="int">select * from userinfo where id=#{id}</select><update id="updateUser" parameterType="com.zhongruan.bean.UserInfo">update userinfo set username=#{username},password=#{password} where id=#{id}</update>
</mapper>
  • 在resource下新建applicationContext.xml(mybatis整合配置文件)
<?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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 1.配置数据库相关参数properties的属性:${url} --><context:property-placeholder location="classpath:db.properties"/><!-- 2.配置数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/><property name="maxPoolSize" value="30"/><property name="minPoolSize" value="2"/></bean><!-- 3.配置SqlSessionFactory对象 --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入数据库连接池 --><property name="dataSource" ref="dataSource"/><!-- 扫描bean包 使用别名 --><property name="typeAliasesPackage" value="com.zhongruan.bean"></property><!--配置加载映射文件 UserMapper.xml--><property name="mapperLocations" value="classpath:mapper/*.xml"/></bean><!-- 自动生成dao,mapper--><!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.zhongruan.dao"/><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean><!--自动扫描--><context:component-scan base-package="com.zhongruan"/><!-- 配置事务--><!-- 5.配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"/></bean><!-- 6.开启事务注解--><tx:annotation-driven></tx:annotation-driven></beans>
  • 在resource下新建spring-mvc.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:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-4.3.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><!-- 1.注解扫描位置--><context:component-scan base-package="com.zhongruan.controller" /><!-- 2.配置映射处理和适配器--><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/><bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/><!-- 3.视图的解析器--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/" /><property name="suffix" value=".jsp" /></bean>
</beans>
  • 在db.properties文件中配置mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sys?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
  • 在log4j.properties文件中配置日志设定
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
  • 配置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"version="3.1"><!-- 配置加载类路径的配置文件 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:applicationContext.xml</param-value></context-param><!-- 配置监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener><!-- 解决中文乱码过滤器 --><filter><filter-name>characterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>characterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 前端控制器(加载classpath:spring-mvc.xml 服务器启动创建servlet) --><servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数,创建完DispatcherServlet对象,加载springmvc.xml配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 服务器启动的时候,让DispatcherServlet对象创建 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcherServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

前端页面

  • index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%><html>
<body>
<h2>Hello World!</h2>
<a href="${pageContext.request.contextPath}/user/findAll.do">查询所有用户</a>
</body>
</html>
  • allUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>user列表</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1>基于SSM框架的管理系统:简单实现增、删、改、查。</h1></div></div></div><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>用户列表 —— 显示所有用户</small></h1></div></div></div><div class="row"><div class="col-md-4 column"><a class="btn btn-primary" href="${pageContext.request.contextPath}/user/toAddUser.do">新增</a></div></div><div class="row clearfix"><div class="col-md-12 column"><table class="table table-hover table-striped"><thead><tr><th>id</th><th>用户名</th><th>密码</th><th>操作</th></tr></thead><tbody><c:forEach items="${ui}" var="userInfo"><tr><td>${userInfo.id}</td><td>${userInfo.username}</td><td>${userInfo.password}</td><td><a href="${pageContext.request.contextPath}/user/toUpdateUser.do?id=${userInfo.id}">更改</a> |<a href="${pageContext.request.contextPath}/user/del.do?id=${userInfo.id}">删除</a></td></tr></c:forEach></tbody></table></div></div>
</div>
  • addUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";
%>
<html>
<head><title>新增用户</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1>基于SSM框架的管理系统:简单实现增、删、改、查。</h1></div></div></div><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>新增用户</small></h1></div></div></div><form action="${pageContext.request.contextPath}/user/addUser.do"method="post">用户姓名:<input type="text" name="username"><br><br><br>用户密码:<input type="text" name="password"><br><br><br><input type="submit" value="添加" ></form>
</div>
  • updateUser.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>修改论文</title><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 引入 Bootstrap --><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container"><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1>基于SSM框架的管理系统:简单实现增、删、改、查。</h1></div></div></div><div class="row clearfix"><div class="col-md-12 column"><div class="page-header"><h1><small>修改用户</small></h1></div></div></div><form action="${pageContext.request.contextPath}/user/updateUser.do"method="post"><input type="hidden" name="id" value="${userInfo.id}"/>用户姓名:<input type="text" name="username" value="${userInfo.username}"/>用户密码:<input type="text" name="password" value="${userInfo.password}"/><input type="submit" value="提交" /></form>
</div>

运行页面

用户列表界面

新增用户界面

更改用户界面

源码地址:https://download.csdn.net/download/qq_40689705/11263837

实训日记(四)——ssm框架搭建相关推荐

  1. SSM框架搭建(四) springmvc和mybatis的配置

    SSM框架搭建(一) JDK和MAVEN环境搭建 SSM框架搭建(二) 创建MAVEN项目 SSM框架搭建(三) 数据库创建和MyBatis生成器自动生成实体类.DAO接口和Mapping映射文件 S ...

  2. 杰普实训日记 授课内容 第一天 讲师:李春雨

    杰普实训日记 授课内容 第一天 1.软件开发 1) Java开发 2) WebUI开发 2.作为一个合格软件工程需要的基本素质: 1. 熟悉linux操作系统 2. 能够使用终端的绝对不使用图形化界面 ...

  3. javaweb成长之路:SSM框架搭建

    学习javaweb开发,框架的学习是难以避免的,合理的使用框架进行开发,可以很大程度的提升开发效率,减少开发者的工作量.随着it行业的不断发展,各种框架也是层出不穷,目前使用最广的框架应该是属于ssm ...

  4. 基于 SSM 框架搭建的宠物领养系统

    近年来,随着人们对于宠物领养.保护的意识日益提高,宠物领养市场逐渐走向规范化.高效化.而针对这一市场需求,基于 SSM 框架搭建的宠物领养系统应运而生. 一.关于 SSM 框架 SSM 是一个基于 S ...

  5. ssm框架搭建连接mysql_SSM框架集搭建

    SSM(Spring+SpringMVC+Mybatis)框架集由Spring.SpringMVC.Mybatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 1.三大框架概述 Spr ...

  6. SSM框架搭建学习总结

    SSM框架搭建学习总结 #开发环境 1.操作系统:windows 2.web服务器:Tomcat8.0 3.Java开发包:JDK8 4.开发工具:MyEclipse或者Eclipse都可以 5.数据 ...

  7. 小菜鸟的SSM框架搭建【详细步骤】【SSM/IDEA/MAVEN】

    小菜鸟的SSM框架搭建 内容很长噢,一步步搭建 此框架是跟着b站上的黎曼的猜想所发布的视频搭建起来的,细节操作可以看视频.我只是在这里梳理一下ssm框架搭建的流程. 整合说明:SSM整合可以使用多种方 ...

  8. ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)

    最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教, ...

  9. Android实训案例(四)——关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程!...

    Android实训案例(四)--关于Game,2048方块的设计,逻辑,实现,编写.加上色彩.分数等深度剖析开发过程! 关于2048,我看到非常多大神,比方医生.郭神.所以我也研究了一段时间.还好是研 ...

  10. SSM框架搭建详细解析

    总结了一下搭建SSM框架流程,在以后用到的时候方便回头使用. 使用工具:MyEclipse 2015:Tomcat 8版本:jdk1.8版本. 首先: 1:创建一个WebProject项目,jdk1. ...

最新文章

  1. SCTF 2015 pwn试题分析
  2. Python Socket通信黏包问题分析及解决方法
  3. Vue源码: 关于vm.$watch()内部原理
  4. 6-2 多项式求值 (15 分)
  5. linux文本模式无法打字,文本终端模式下中文输入法(Fcitx)配置(openSUSE Leap 42.1)...
  6. 最新解决laravel框架路由无法显示的问题
  7. SylixOS arm64 自旋锁
  8. python爬虫实例项目大全-GitHub 上有哪些优秀的 Python 爬虫项目?
  9. 2019 live tex 发行版_TexLive 2019 安装指南
  10. mysql主从IP地址变更
  11. 12天,这本《重学Java设计模式》PDF书籍下载量9k,新增粉丝1400人,Github上全球推荐榜!
  12. oracle11g64位怎么用sql,plsql32 位连接oracle11g64位方法
  13. java几种锁_java中有几种锁
  14. 二维码会成为杀手级应用吗?
  15. Idea无法自动补全代码,ctrl+Alt+v无法使用解决方法
  16. 【】Microsoft Dynamics CRM Server 2011 (x86 and x64) - DVD (Chinese-Simplified)
  17. Linux查看网络连接情况ss,Linux网络状态工具netstat和ss使用详解
  18. 为什么手机多用arm?
  19. 【数字孪生】数字孪生十问:分析与思考
  20. 用JAVA写出1到999的随性化数_OO第一单元——谜之随性总结

热门文章

  1. Android手机应用开发入门书籍推荐
  2. 西安python培训机构贴吧
  3. 用termux运行python代码_没有电脑?不能运行代码?试试用手机搞定
  4. openmpi入门1-安装与测试
  5. 【前端教程】给网站添加暗黑模式指南
  6. 【C语言】关键字的补充
  7. ubuntu连不上网解决
  8. GN的使用 - GN工具
  9. PetaLinux学习笔记 2
  10. JAVA 使用iTextPDF将网络图片(非JPG)转换为PDF