发布时间:2025-12-11 03:17:25 浏览次数:12
SpringMVC
一,概述
二、原理:
1.创建form表单
css代码
2.准备Student类
3.创建启动类
4,创建数据库,表
使用JDBC把得到的数据入库
5.创建StudentController类
6.测试
总结
作用是接受服务器请求并做出响应,是spring的后续产品,使用注解@RestController和@RequestMapping
MVC设计模式:
M是model模型,用来封装数据
V是view视图,用来展示数据
C是control控制器,用来控制浏览器如何请求,做出数据响应
好处:提高代码的复用性,松耦合
1.前端控制器DispatcherServlet:当浏览器发送请求成功后,充当调度者的角色,负责调度每个组件
2.处理器映射器HandlerMapping:根据请求的url路径,找到能处理请求的类名和方法名
Url:http://localhost:8080/abc 在HelloControl类中找到abc()
3.处理器适配器HandlerAdaptor:正式处理业务,并返回结果交给DispatcherServlet
4.视图解析器ViewResolver:找到正确的能展示数据的视图,准备展示数据
5.视图渲染view:展示数据
表单form默认提交方式是get,将提交的数据展示在网址上,而post提交方式隐藏了数据在网址上,因此更加的安全,这里使用springMVC来处理post的请求参数
<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>学生管理系统</title><linkrel="stylesheet"href="../css/form.css"/></head><body><!--利用表单,向服务器发送数据,默认是get提交,通过method属性修改提交方式action属性,指定提交的位置--><formmethod="post"action="http://localhost:8080/stu/add"><tablewidth="500px"height="300px"><tr><td><h3>学生信息管理系统MIS</h3></td></tr><tr><td>姓名:</td></tr><tr><td><inputclass="a"type="text"placeholder="请输入姓名..."name="name"/></td></tr><tr><td>年龄:</td></tr><tr><td><inputclass="a"type="number"placeholder="请输入年龄..."name="age"/></td></tr><tr><td>性别:(单选框)<inputtype="radio"name="sex"value="1"/>男<inputtype="radio"name="sex"value="0"/>女</td></tr><tr><td>爱好:(多选)<inputtype="checkbox"name="hobby"value="ppq"/>乒乓球<inputtype="checkbox"name="hobby"value="ps"/>爬山<inputtype="checkbox"name="hobby"value="cg"/>唱歌</td></tr><tr><td>学历:(下拉框)<selectname="edu"><optionvalue="1">本科</option><optionvalue="2">硕士</option><optionvalue="3">博士</option><optionvalue="4">专科</option></select></td></tr><tr><td>入学日期:</td></tr><tr><td><inputtype="date"name="intime"/></td></tr><tr><td><inputtype="submit"value="保存"/><inputtype="reset"value="取消"/></td></tr></table></form></body></html>
css的三种引入方式
1.行内样式:通过style属性引入css样式
例如:<h2 >行内样式</h2>
一般实际写页面时不提倡,测试的时候可以使用
2,内部样式表
通过<style></style>标签,写在head标签中
例如:<style> .b{ width: 200px; height: 100px; background-color: #FF69B4; } </style>
3,外部样式表
创建.css文件,将css样式写入其中,然后在html文件中引入,使用link标签
例如:href是css文件路径
<linkrel="stylesheet"href="../css/form.css"/>`
我这里使用了外部样式表的方式,使css代码和html代码分离,使结构更加清晰
/*输入框*//*类选择器*/.a{width:300px;/*宽度*/height:40px;/*高度*/padding:5px;/*内边距*/font-size:15px;/*字号*/}/*属性选择器*//*修饰提交按钮*/input[type="submit"]{width:60px;height:30px;background-color:blue;color:#fff;font-size:15px;border-color:blue;}input[type="reset"]{width:60px;height:30px;background-color:hotpink;color:#fff;font-size:15px;border-color:hotpink;}body{font-size:20px;}页面还可以用css做得更加美观哦,这里只是为了测试,如果有兴趣还可以自己做得更加好看哦~
packagecn.tedu.pojo;importorg.springframework.format.annotation.DateTimeFormat;importjava.util.Arrays;importjava.util.Date;//@RequestMapping("find")//是Model层,用来封装数据,就是一个pojo(封装的属性+get/set)publicclassStudent{//属性(成员变量):变量类型变量名//提交数据的类型页面上name属性的值//publicStudentfind(){privateStringname;privateIntegerage;//避免一些异常,能用引用类型最好使用引用类型privateIntegersex;privateString[]hobby;privateIntegeredu;//浏览器上提交的日期默认是2021/8/12默认是String类型//报错400,需要把String的日期转成Date日期,使用注解@DateTimeFormat@DateTimeFormat(pattern="yyyy-MM-dd")privateDateintime;//}//获取getsettoStringpublicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicIntegergetAge(){returnage;}publicvoidsetAge(Integerage){this.age=age;}publicIntegergetSex(){returnsex;}publicvoidsetSex(Integersex){this.sex=sex;}publicString[]getHobby(){returnhobby;}publicvoidsetHobby(String[]hobby){this.hobby=hobby;}publicIntegergetEdu(){returnedu;}publicvoidsetEdu(Integeredu){this.edu=edu;}publicDategetIntime(){returnintime;}publicvoidsetIntime(Dateintime){this.intime=intime;}@OverridepublicStringtoString(){return"Student{"+"name='"+name+'\''+",age="+age+",sex="+sex+",hobby="+Arrays.toString(hobby)+",edu="+edu+",intime="+intime+'}';}}一般命名为RunApp,位置必须放在所有资源之上的包里
packagecn.tedu;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;/**这是一个启动类*位置:必须在所有资源之上的包里*/@SpringBootApplicationpublicclassRunApp{publicstaticvoidmain(String[]args){SpringApplication.run(RunApp.class);}}要与Student类相对应,爱好这一字段是数组类型,而MySQL中没有数组类型,因此使用varchar
注意字符集使用utf-8
首先要在pom.xml中导入jar包(工具包)
<!--添加jdbc的jar包依赖--><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.48</version></dependency></dependencies>
下面是将数据入库的代码
packagecn.tedu.controller;//是controller层,控制层,用来接受请求和给出响应importcn.tedu.pojo.Student;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.util.Arrays;@RestController@RequestMapping("stu")publicclassStudentController{@RequestMapping("add")publicObjectadd(Students)throwsException{//实现入库insert--jdbc//注册驱动Class.forName("com.mysql.jdbc.Driver");//获取连接Stringurl="jdbc:mysql://localhost:3306/cgb2106";Connectionconn=DriverManager.getConnection(url,"root","123456");//SQL骨架Stringsql="insertintotb_studentvalues(null,?,?,?,?,?,?)";//获取传输器PreparedStatementps=conn.prepareStatement(sql);//给SQL设置值ps.setObject(1,s.getName());ps.setObject(2,s.getAge());ps.setObject(3,s.getSex());//s.getHobby())得到一个数组,不能直接入数据库,需要变成串ps.setObject(4,Arrays.toString(s.getHobby()));ps.setObject(5,s.getEdu());ps.setObject(6,s.getIntime());//执行SQLps.executeUpdate();//执行增删改的SQLSystem.out.println("数据插入成功");returns;}}运行启动类,执行前端页面,提交表单数据,并在数据库中查看数据入库情况
“SpringMVC的概述及原理介绍”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注本站网站,小编将为大家输出更多高质量的实用文章!