Model view controller 如何在用户打开页面时通过控制器强制执行每个请求

Model view controller 如何在用户打开页面时通过控制器强制执行每个请求,model-view-controller,jsp,servlets,Model View Controller,Jsp,Servlets,在MCv2中,如果用户直接进入某个页面(键入链接),则不会使用控制器页面。那么如何执行登录和安全性呢 如何强制每个直接页面访问首先通过控制器页面 我确实需要用户直接访问网页,但希望它们通过控制器路由 过滤器和在WEB-INF中放置JSP将不允许这样做。过滤器也不允许谷歌搜索引擎吗 我确实希望对要访问的每个页面进行计算/记录,同时希望用户直接进入某个页面,而无需对搜索引擎大惊小怪。您始终可以添加过滤器,以捕获每个请求 以下是ApacheShiro示例: 请注意,url模式匹配所有内容 <fi

在MCv2中,如果用户直接进入某个页面(键入链接),则不会使用控制器页面。那么如何执行登录和安全性呢

如何强制每个直接页面访问首先通过控制器页面

我确实需要用户直接访问网页,但希望它们通过控制器路由

过滤器和在WEB-INF中放置JSP将不允许这样做。过滤器也不允许谷歌搜索引擎吗


我确实希望对要访问的每个页面进行计算/记录,同时希望用户直接进入某个页面,而无需对搜索引擎大惊小怪。

您始终可以添加过滤器,以捕获每个请求

以下是ApacheShiro示例:

请注意,url模式匹配所有内容

<filter>
    <filter-name>ShiroFilter</filter-name>
    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>ShiroFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>
</filter-mapping>

雪洛菲特
org.apache.shiro.web.servlet.ShiroFilter
雪洛菲特
/*
要求
向前地
包括
错误

将所有jsp文件放在WEB-INF文件夹中。。。然后用户无法直接访问该jsp路径。。。它的安全流量。。。在每个jsp路径中,您应该添加WEB-INF的前缀。您的路径将是WEB-INF/home.jsp

我不确定是否理解,但是将所有JSP放在/WEB-INF filder中会对用户隐藏它们,这样就没有人可以访问它们directly@TomaszNurkiewicz我确实需要用户直接访问网页,但希望它们通过控制器路由。这不是问题(?)-将控制器命名为页面,用户不会注意到。您不需要为每个页面都使用控制器。只要有一个通配符映射。@TomaszNurkiewicz是有意义的。你能展示你制作的现成代码吗?如果你有,或任何其他东西/文章,你可以发表你的评论作为答案。你能详细说明它的用途吗?工作呢?我确实需要用户直接访问网页,但希望它们通过控制器路由。过滤器是在请求进入servlet之前做一些事情。至少它是一个用例。您可以根据需要删除请求或重新路由请求,也可以将其传递给其他筛选器。我真的不知道你到底想做什么。@如果页面放在WEB-INF文件夹中,每个请求都会通过servlet。问题是:在提供静态内容之前,您想做一些工作吗?因为我猜这就是你要做的,你提供一些静态的WebPagetHank来回复,我确实希望对每个要访问的页面进行计算/登录,同时希望用户直接进入一个页面,而不需要对搜索引擎大惊小怪。如果页面放在WEB-INF文件夹中,“每个请求都通过-?-?-“servlet”-?-?-?-?-”,那么用户总是可以直接进入页面,如果您不重定向他,他就会看到页面。过滤器可以通过日志记录和计算来完成这项工作,前提是您需要做的所有计算都可以在http请求中找到。例如,您将看到一个过滤器,它进行计算/记录,一堆带有url映射的jsp,jsp位于web inf文件夹中。如何让用户直接获取页面?如何同时让控制员参与?