重写Url(http://www.yousite.com/productdetail/123456.htm)

重写Url大概步骤分为以下三个

1.在web.config里面设置verb动作。

2.后台处理类YourCommonUrlRewriter.cs,截取相应参数做处理

3.前台跳转链接类似路径是这样的跳转方式 path="*/,*.htm,*/*.htm,*/*/*.htm" 。

 

1.在web.config里面设置verb动作。

<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="GET,HEAD,POST" path="*/,*.htm,*/*.htm,*/*/*.htm" type="YourCommonUrlRewriter"/>
<!--<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>-->
</httpHandlers>

 2.后台处理类YourCommonUrlRewriter.cs,截取相应参数做处理 。

string requestUrl = context.Request.Url.AbsolutePath;
if (string.IsNullOrEmpty(requestUrl))
{
context.Response.Redirect("/");
return;
}
if (requestUrl.Contains(".htm"))
{
requestUrl = requestUrl.Replace(".htm", "");
}
string[] strs = requestUrl.Split('/');
if (strs.Length<3)
{
context.Response.Redirect("/");
return;
}

// /action/index.htm
string action = strs[1];

后续为根据对应action参数做逻辑处理。

3.前台跳转链接类似路径是这样的跳转方式 path="*/,*.htm,*/*.htm,*/*/*.htm" 。

 <a href="/productdetail/{@id}.htm" title="{@title}" target="_blank">

 

 

转载于:https://www.cnblogs.com/SUNDYYIP/p/3413721.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,实现这个需求,需要用到Java Web开发技术,具体步骤如下: 1. 首先需要搭建一个Java Web开发环境,例如使用Eclipse + Tomcat,或者使用IDEA + Tomcat等。 2. 创建一个Java类,用于存储商品信息,包括商品图片、商品名称、商品价格、商品介绍等,例如: ```java public class Product { private String name; private double price; private String description; private String image; // 构造函数、getter和setter方法省略 } ``` 3. 创建一个Servlet类,用于处理请求并返回商品详情页,例如: ```java public class ProductDetailServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取商品ID int productId = Integer.parseInt(request.getParameter("id")); // 查询数据库或其他数据源,获取该商品的详细信息 Product product = ProductService.getProductById(productId); // 将商品信息存储到request中,用于在JSP中展示 request.setAttribute("product", product); // 转发到商品详情页 request.getRequestDispatcher("/productDetail.jsp").forward(request, response); } } ``` 4. 创建一个JSP页面,用于展示商品详情页,例如: ```html <html> <head> <title>商品详情页</title> </head> <body> <h1>${product.name}</h1> <img src="${product.image}"> <p>${product.description}</p> <p>${product.price}</p> </body> </html> ``` 5. 在Web.xml中配置Servlet,例如: ```xml <servlet> <servlet-name>ProductDetailServlet</servlet-name> <servlet-class>com.example.ProductDetailServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ProductDetailServlet</servlet-name> <url-pattern>/productDetail</url-pattern> </servlet-mapping> ``` 6. 最后,在商品列表页面或其他页面中添加链接,用于跳转到商品详情页,例如: ```html <a href="/productDetail?id=1">查看详情</a> ``` 这样,在用户点击链接时,就会跳转到商品详情页,展示商品的详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值