springmvc中基于注解的注册

老样子先数据库中反射Cat.java

 1 package com.hpe.bean;
 2 // Generated 2016-11-18 11:07:54 by Hibernate Tools 3.5.0.Final
 3
 4 import javax.persistence.Column;
 5 import javax.persistence.Entity;
 6 import javax.persistence.GeneratedValue;
 7 import static javax.persistence.GenerationType.IDENTITY;
 8 import javax.persistence.Id;
 9 import javax.persistence.Table;
10
11 /**
12  * Cat generated by hbm2java
13  */
14 @Entity
15 @Table(name = "cat", catalog = "java4")
16 public class Cat implements java.io.Serializable {
17
18     private Integer id;
19     private String sex;
20     private String name;
21     private String pinzhong;
22     private Double price;
23     private Integer age;
24
25     public Cat() {
26     }
27
28     public Cat(String sex, String name, String pinzhong, Double price, Integer age) {
29         this.sex = sex;
30         this.name = name;
31         this.pinzhong = pinzhong;
32         this.price = price;
33         this.age = age;
34     }
35
36     @Id
37     @GeneratedValue(strategy = IDENTITY)
38
39     @Column(name = "ID", unique = true, nullable = false)
40     public Integer getId() {
41         return this.id;
42     }
43
44     public void setId(Integer id) {
45         this.id = id;
46     }
47
48     @Column(name = "SEX")
49     public String getSex() {
50         return this.sex;
51     }
52
53     public void setSex(String sex) {
54         this.sex = sex;
55     }
56
57     @Column(name = "NAME")
58     public String getName() {
59         return this.name;
60     }
61
62     public void setName(String name) {
63         this.name = name;
64     }
65
66     @Column(name = "PINZHONG")
67     public String getPinzhong() {
68         return this.pinzhong;
69     }
70
71     public void setPinzhong(String pinzhong) {
72         this.pinzhong = pinzhong;
73     }
74
75     @Column(name = "PRICE", precision = 22, scale = 0)
76     public Double getPrice() {
77         return this.price;
78     }
79
80     public void setPrice(Double price) {
81         this.price = price;
82     }
83
84     @Column(name = "AGE")
85     public Integer getAge() {
86         return this.age;
87     }
88
89     public void setAge(Integer age) {
90         this.age = age;
91     }
92
93 }

dao层CatDao.java

 1 package com.hpe.dao;
 2
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.springframework.beans.factory.annotation.Autowired;
 6 import org.springframework.stereotype.Repository;
 7
 8 import com.hpe.bean.Cat;
 9
10 @Repository
11 public class CatDao {
12
13         @Autowired
14         private SessionFactory sf;
15
16         public int savaCat(Cat cat){
17             Session session = sf.openSession();
18             int i = (int) session.save(cat);
19             return i;
20         }
21
22 }

service层CatService.java

 1 package com.hpe.service;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Service;
 5
 6 import com.hpe.bean.Cat;
 7 import com.hpe.dao.CatDao;
 8
 9 @Service
10 public class CatService {
11
12         @Autowired
13         private CatDao cd;
14
15         public boolean Cservice(Cat cat){
16             int i = cd.savaCat(cat);
17             if(i>0){
18                 return true;
19             }
20             return false;
21         }
22 }

Controller层CatController.java

 1 package com.hpe.controller;
 2
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Controller;
 5 import org.springframework.web.bind.annotation.RequestMapping;
 6 import org.springframework.web.bind.annotation.RequestMethod;
 7
 8 import com.hpe.bean.Cat;
 9 import com.hpe.service.CatService;
10
11 @Controller
12 public class CatController {
13
14         @Autowired
15         private CatService cs;
16
17         @RequestMapping(value="/cat",method=RequestMethod.POST)
18         public String getCat(Cat cat){
19             boolean b = cs.Cservice(cat);
20             if(b){
21                 return "success";
22             }
23             return "cat";
24         }
25 }

在前面的配置文件加了springmvc切面所以这边来测试下TestAdvice.java

 1 package com.hpe.advice;
 2
 3 import org.aspectj.lang.JoinPoint;
 4 import org.aspectj.lang.ProceedingJoinPoint;
 5
 6 public class TestAdvice {
 7
 8     // 前置通知
 9     public void before(JoinPoint point) {
10
11         System.out.println(point.getTarget() + "开始进行log记录---");
12         System.out.println(point.getSignature().getName() + ":方法开始执行");
13         Object obj[] = point.getArgs();
14         if (obj != null) {
15             for (Object objs : obj) {
16                 System.out.println(objs);
17             }
18         }
19     }
20
21     // 后通知
22     public void after(JoinPoint point) {
23         System.out.println(point.getTarget() + "方法执行结束----");
24
25     }
26
27     // 返回后通知
28     public void afterReturn(JoinPoint point, Object ret) {
29         System.out.println(point.getTarget() + "方法执行后的结果为" + ret);
30     }
31
32     // 抛出异常后通知
33     public void afterThrow(JoinPoint point, Object ex) {
34         System.out.println("异常为" + ex);
35
36     }
37
38     // 环绕通知必须又一个参数ProceedingJoinpoint和一个返回值类型
39     public Object around(ProceedingJoinPoint pjp) {
40         Object obj = null;
41
42         try {
43             // 前置通知
44             System.out.println(pjp.getTarget() + "前置通知开始执行");
45             obj = pjp.proceed();
46             // 返回通知
47             System.out.println(pjp.getSignature().getName() + "方法返回执行结果为:" + obj);
48         } catch (Throwable e) {
49
50             e.printStackTrace();
51             System.out.println("异常通知开始执行");
52         }
53         // 后置通知
54         System.out.println(pjp.getTarget() + "后置通知-----");
55
56         return obj;
57
58     }
59
60 }

前台页面cat.jsp

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <head>
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11     <FORM action="../cat" method="post">
12     性别:<INPUT type="text" name="sex" /><BR />
13     名字:<INPUT type="text" name="name" /><BR />
14     品种:<INPUT type="text" name="pinzhong" /><BR />
15     价格:<INPUT type="text" name="price" /><BR />
16     年龄:<INPUT type="text" name="age" /><BR />
17     <INPUT type="submit" value="注册"/>
18
19     </FORM>
20
21 </body>
22 </html>

success.jsp

<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
    <jsp:directive.page contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"/>
    <jsp:output doctype-root-element="html"
        doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
        omit-xml-declaration="true" />
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Insert title here</title>
</head>
<body>
注册成功
</body>
</html>
</jsp:root>

页面展示

控制台打印输出

时间: 2024-11-03 22:34:34

springmvc中基于注解的注册的相关文章

springmvc中基于注解的登录

配置已经在前一个随笔中提到,下面直接写类. 首先通过数据库反射javabean文件User.java package com.hpe.bean; // Generated 2016-11-18 11:06:39 by Hibernate Tools 3.5.0.Final import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import

SpringMVC应用------基于注解的入门实例

SpringMVC应用------基于注解的入门实例 目录 1.在 web.xml 文件中配置前端处理器 2.在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器 3.编写 Handler 4.编写 视图 index.jsp 5.在浏览器中输入:http://localhost:8080/SpringMVC-003/hello 前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程.但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个

springMVC中@RequestParam注解的用法

springMVC中@RequestParam注解用在Controller层获解析.提取参数,当然你也可以用request.getParameter("name")来获取参数,而@RequestParam注解接收参数有几种不同的写法. 1.test(String name) 像正常的方法接收参数,不带@RequestParam注解.这种写法,如果没有name参数不会报错. 2.test(@RequestParam String name) 带@RequestParam注解.这种写法,n

Spring MVC中基于注解的 Controller

终于来到了基于注解的 Spring MVC 了.之前我们所讲到的 handler,需要根据 url 并通过 HandlerMapping 来映射出相应的 handler 并调用相应的方法以响应请求.实际上,ControllerClassNameHandlerMapping, MultiActionController 和选择恰当的 methodNameResolver(如 InternalPathMethodNameResolver) 就已经可以在很大程度上帮助我们省去不少的 XML 配置,谁让

springMVC学习(基于注解的MVC)

今天这篇博客给大家带来基于注解的springMVC开发,大家之前有没有想过一个问题,就是我们之前基于配置文件配置写出来的那些Controller只能默认处理一个方法,那么我如果想像structs2那样子来让一个Controller可以处理多个请求,对于不同的请求,跳转进不同的方法来做处理,这样是极好的,springMVC基于注解的开发,就可以完成上边的这些需求,下面我们看一个例子. 添加jar文件 首先我们需要添加需要的jar文件,这里只是比上一篇springMVC helloworld多了一个

shiro中基于注解实现的权限认证过程

授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限. 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限等等. 一.用户权限模型 为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示. 用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码 password 两个属性.实际应用中可能会包含用户是否被禁用,用户信息是否过期等信息. 用户权限信息用 Role 与 Per

SpringMVC之基于注解的Controller

参考博客:https://www.cnblogs.com/qq78292959/p/3760560.html Controller注解: 传统风格的Controller需要实现Controller接口,而现在我们只需要用注解就行了. 基于注解的控制器有几个优点,1.一个控制器可以处理多个action(动作),而一个实现 Controller接口的控制器只能处理一个动作.    2.基于注解的控制器请求映射不需要存储在配置文件中,使用RequesetMapping注解类型就可以对一个方法进行请求处

springMVC中使用注解@ResponseBody,@RequestBody传递json数据

在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换. [email protected] 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. 即可以将返回的对象(带有数据的javabean的集合List或Map)转换成JSON. [email protected] 该注解用于读取Request请求的

springMVC中的注解@RequestParam与@PathVariable的区别

@PathVariable绑定URI模板变量值 @PathVariable是用来获得请求url中的动态参数的 @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上.//配置url和方法的一个关系@RequestMapping("item/{itemId}") /* @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,类似于struts的action请求* @responsebody表示该方法的返回结果直接写入HTTP