最好有案例 原来的URL:http://localhost:8080/wst/goodsShow.do?flag=goodsinfo&goodsId=G121105140423540
现在我想改为:http://localhost:8080/wst/goodsShow
现在我想改为:http://localhost:8080/wst/goodsShow
解决方案 »
- 关于struts2中session处理问题!
- 在JAVA中的数字转化问题
- 各位高手帮忙,如何根据数据库建立相应的表单???????????
- Strus+hibernate中JSP遇到的问题,高人解决下撒
- 谁在servlet下用deflater或者inflater来压缩或者解压缩数据。。。。
- [请教大虾]关于JSP中select语句中的条件表示
- hibernate.cfg.xml怎么写
- 请问如何使jsp界面中的button变为disabled?
- jsp怎样连接mysql,拜托了!!!
- JAVA 读xml和properties那个快
- linux下安装tomcat集群,tomcat和apache整合问题!
- 求jquery+ajax+struts2 注册时异步提示用户名是否存在的代码
Web.xml 加入过滤器----------------------------------- <filter> <filter-name>urlFilter</filter-name> <filter-class>com.url.filter.URLFilter</filter-class> </filter> <filter-mapping> <filter-name>urlFilter</filter-name> <url-pattern>*.shtml</url-pattern> </filter-mapping> urlrewrite.xml 解析规则配置文件---------------------------- <?xml version="1.0" encoding="utf-8"?><urlrewrite><rule> <from>^/(\w+)_(\w+)_(\d+)\.shtml$</from> 匹配表达式 <to type="forward">/$1.do?$2=$3</to> 解析后URL</rule> </urlrewrite> URLFilter.java 过滤器处理类---------------------- public class URLFilter implements Filter { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; String realPath = request.getSession().getServletContext().getRealPath("/"); String fileName = realPath + "WEB-INF\\urlrewrite.xml"; String uri = request.getServletPath(); String rewriteUrl = getRewriteUrl(uri, fileName); if (null != rewriteUrl) { request.getRequestDispatcher(rewriteUrl).forward(request, response); return; } filterChain.doFilter(servletRequest, servletResponse); } private String getRewriteUrl(String url, String fileName) { DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = f.newDocumentBuilder(); Document document = builder.parse(fileName); NodeList list = document.getElementsByTagName_r("rule"); for (int i = 0; i < list.getLength(); i++) { Element elemnt = (Element) list.item(i); NodeList list2 = elemnt.getElementsByTagName_r("from"); Element element = (Element) list2.item(0); String formValue = element.getFirstChild().getNodeValue(); NodeList list3 = elemnt.getElementsByTagName_r("to"); Element element2 = (Element) list3.item(0); String type = element2.getAttribute("type"); String toValue = element2.getFirstChild().getNodeValue(); String rewriteUrl = url.replaceAll(formValue, toValue); if (url != null && !"".equals(url.trim()) && !url.equals(rewriteUrl)) { return rewriteUrl; } } } catch (Exception ex) { ex.printStackTrace(); } return null; }}
找找 网上都有,这个是转的
<filter-name>urlFilter</filter-name>
<url-pattern>/goodsShow</url-pattern>
</filter-mapping>
<rule>
<from>^/login$</from> 我要显示的路径
<to type="forward">/goodsShow.xz?jsgjz="+keyword</to>真实路径
</rule>
keyword是不确定的 那么我应该怎么写吖
动态参数哪里 http://localhost:8080/wst/goodsShow.do?goodsId=?
goodsId=未知值 那个不确定的值 这个我就不知道应该怎么搞
<rule>
<from>/blog/articlelist_([0-9]+).html$</from>
<to type="forward">/blog/queryBlogTitleList\?blogUserid=$1</to>
</rule>
我用的urlrewrite的jar包 在urlrewrite.xml可以配置这个的,用通配符
例如
浏览器地址栏显示:/blog/articlelist_1.html
实际后台访问地址:/blog/queryBlogTitleList?blogUserid=1