学了这么多,觉得要做个小项目来巩固自己的经验
今天来总结下自己发现的问题。
之前有一个一知半解的知识点,
那就是在web.xml文件中配置的。
这个就是一个拦截你在url输入的规则,
这里有可以设置三个参数:
*.action
<url-pattern>*.action</url-pattern>
- 1
代表是拦截后缀名字为 .action 结尾的url
/
<url-pattern>/</url-pattern>
- 1
代表 拦截 所有的url 但是不包括 .jsp的url
/*
<url-pattern>/*</url-pattern>
- 1
代表拦截所有的url 同样也包括.jsp为后缀的url
这里的拦截就是指当你按照相应规则输入时,会拦截你的url,如果拦截到符合设置规则的url会去查找有没有相应的处理器,如果有则根据处理器进行处理,没有会出404错误。如果控制器转到另一页面,另一页面显示时也会进行拦截判断。
注意:
如果想进入相应的控制器,则输入的url必须符合相应的规则。如*.action ,他的url后面必须跟.action才能进入相应的handler,如果是其他两个任何后缀都可以进入
那么 /* 就有一个注意点,假设控制器输出一个jsp页面,这时又进行了拦截判断,则jsp页面无法输出。
今天又有一个大问题,就是如何不经过controller而直接打开jsp页面。
首先我是试了试无论经过那种规则都无法直接调用到jsp页面,最后发现并不是拦截规则的问题,而是我的jsp页面都写在了
WEB-INF下,这个文件下面的jsp并不能通过url直接访问,相当于自动保护,防止直接用户直接进入有些页面违规操作。
但是有一个方法可以。直接进入url。
在springmvc.xml写下面语句
尤其是第二句,commoditinsert是我想要直接输出的jsp页面的name。
view=路径名 path=要输入的url名,这里的.action是因为在web.xml配置了.action拦截,所以要这么写