SimpleServletHandlerAdapter 和 BeanNameUrlHandlerMapping 搭配 controller应该怎么写
时间: 2024-05-29 17:08:59 浏览: 19
您可以在使用 SimpleServletHandlerAdapter 的情况下,将控制器类实现为 HttpServlet,并在 web.xml 文件中将其映射到适当的 URL。控制器类将处理所有传入的请求并返回适当的响应。在使用 BeanNameUrlHandlerMapping 的情况下,则可以将控制器类配置为带有特定 Bean 名称的 Spring Bean,并使用 BeanNameUrlHandlerMapping 将 URL 映射到适当的 Bean。控制器类将处理所有传入的请求并返回适当的响应。
相关问题
SimpleServletHandlerAdapter 和 BeanNameUrlHandlerMapping 搭配 controller代码 应该i应该怎么写
你好,关于SimpleServletHandlerAdapter 和 BeanNameUrlHandlerMapping 搭配 controller代码的写法,我可以提供一些参考意见。可以先创建一个Controller类,然后使用注解将该类声明为Controller,并且使用RequestMapping注解来映射请求的URL路径。例如:
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/info")
public String getUserInfo(){
// 业务处理代码
return "user_info";
}
}
然后在Spring配置文件中,配置HandlerMapping和HandlerAdapter的实现类,并将Controller类注册到Spring容器中。具体实现方式可以参考以下代码:
<!-- HandlerMapping -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!-- HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleServletHandlerAdapter"/>
<!-- Controller -->
<bean name="/user" class="com.example.controller.UserController"/>
希望以上信息可以对你有所帮助。
SimpleServletHandlerAdapter 和 BeanNameUrlHandlerMapping 搭配 controller 层的代码应该怎么写
为您提供一份基本的范例,具体代码实现可以依据您的具体业务场景进行适当修改。
SimpleServletHandlerAdapter:
```java
public class SimpleServletHandlerAdapter implements HandlerAdapter {
private static final Logger logger = LoggerFactory.getLogger(SimpleServletHandlerAdapter.class);
@Override
public boolean supports(Object handler) {
return (handler instanceof Servlet);
}
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
((Servlet) handler).service(request, response);
logger.info("SimpleServletHandlerAdapter处理请求成功!");
return new ModelAndView();
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}
}
```
BeanNameUrlHandlerMapping:
```java
public class BeanNameUrlHandlerMapping extends AbstractUrlHandlerMapping {
private static final Logger logger = LoggerFactory.getLogger(BeanNameUrlHandlerMapping.class);
@Override
protected Object lookupHandler(String urlPath, HttpServletRequest request) throws Exception {
String beanName = namesForUrlPath(urlPath)[0];
logger.info("BeanNameUrlHandlerMapping成功匹配Handler:{}", beanName);
return getApplicationContext().getBean(beanName);
}
}
```
Controller层的代码:
```java
@Controller
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping(value = "/{id}")
@ResponseBody
public User getUserById(@PathVariable("id") Integer id) {
return userService.getUserById(id);
}
@RequestMapping(value = "/list")
@ResponseBody
public List<User> getUserList() {
return userService.getUserList();
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)