为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输入http://localhost:8080/seckill/list打不开列表界面

如果我把地址修改为http://localhost:8080/seckill/seckill/list即写两个seckill就可以打开详细界面了。其实第一个seckill应该是工程名,而第二个seckill才是RequestMapping定义的值,所以按照道理应该是写两个seckill才能打开界面,为什么老师的演示只写一个seckill就打开了界面呢?

正在回答

8 回答

这个问题还是比较容易解决的,重点是在tomcat的配置文件server.xml上

新建一个tomcat,配置文件如下:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt" />
</Host>

部署项目,如SecKill这个项目,此时配置文件更改成下面这样的情况:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log" suffix=".txt"/>
    <Context docBase="SecKill" path="/SecKill" reloadable="true" source="org.eclipse.jst.jee.server:SecKill"/>
</Host>

好吧,这个时候就很容看出来了,将我们的这个docBase的"SecKill"这个项目,对应的映射成了path="/SecKill",如果想要项目开发时候不使用项目名,直接将path="",置为空,重启项目,输入路径,OK,完成.

有不清楚的,欢迎互相讨论.


2 回复 有任何疑惑可以回复我~
#1

taoy 提问者

非常感谢!感觉应该是这样的。
2016-10-31 回复 有任何疑惑可以回复我~
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xmlns:p="http://www.springframework.org/schema/p"  
    xmlns:tx="http://www.springframework.org/schema/tx"  
    xmlns:mvc="http://www.springframework.org/schema/mvc"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
                        http://www.springframework.org/schema/beans/spring-beans.xsd  
                        http://www.springframework.org/schema/mvc  
                        http://www.springframework.org/schema/mvc/spring-mvc.xsd 
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        http://www.springframework.org/schema/context  
                        http://www.springframework.org/schema/context/spring-context.xsd">
	<!-- 配置springmvc -->
	<!-- 1.开启 springmvc注解模式-->
	<!-- 简化配置
		 (1)自动注册 DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
		 (2)提供一系列:数据绑定,数字日期的format @NumberFormat,@DateTimeFormat
			xml和json默认读写配置
	 -->
	<mvc:annotation-driven/>
	
	<!-- 
	 <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView"> 
    <property name="contentType" value="application/json"/> 
	</bean> 
	 -->
	<!-- 2.servlet-mapping 映射路径:“/” -->
	<!-- 静态资源默认servlet配置 
		(1):加入对静态资源的处理:js,gif,png
		(2):允许使用"/"做整体映射
	-->
	
	<mvc:default-servlet-handler/>
	
	<!-- 3.配置jsp 视图解析器 ViewResolver -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
			<property name="viewClass"  value="org.springframework.web.servlet.view.JstlView"/>
			<property name="prefix" value="/WEB-INF/jsp/"/>
			<property name="suffix" value=".jsp"/>
	</bean>
	<!-- 4:扫描web相关的bean -->
	<context:component-scan base-package="com.alan.seckil.web"/>
</beans>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID"
version="3.1" metadata-complete="true">
<!-- 配置springmvc前端控制器 DispatcherServlet -->
  <servlet>
  <servlet-name>seckil-dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <!-- 配置springmvc需要加载的配置文件
  srping-dao.xml,spring-service.xml,spring-web.xml
  Mybatis->spring->springmvc
  -->
  <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:/spring/sping-*.xml</param-value>
  </init-param>
  </servlet>
<servlet-mapping>
<servlet-name>seckil-dispatcher</servlet-name>
<!-- 默认匹配所有的请求 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

http://img1.sycdn.imooc.com//5a7eb9270001e75305590484.jpg

http://img1.sycdn.imooc.com//5a7eb9270001606c08550559.jpg

http://img1.sycdn.imooc.com//5a7eb9270001b31711090887.jpg

找不到映射怎么回事?

http://img1.sycdn.imooc.com//5a7eb98d0001099e13380868.jpg

0 回复 有任何疑惑可以回复我~

老师应该配置了tomcat的

0 回复 有任何疑惑可以回复我~

web.xml

http://img1.sycdn.imooc.com//57e75e0000012b9004450130.jpg

spring-web.xml

http://img1.sycdn.imooc.com//57e75e450001449407360210.jpg

SeckillController.java

http://img1.sycdn.imooc.com//57e75e74000186c506540482.jpg

然后运行后,浏览器打开的地址是这样

http://img1.sycdn.imooc.com//57e75ec90001f4fa10110446.jpg

写成http://localhost:8080/seckill/list 反而 打不开页面

http://img1.sycdn.imooc.com//57e75eef000111c307380333.jpg

想问下为什么,没明白

1 回复 有任何疑惑可以回复我~
#1

nullundefine

我也是,解决了吗哈哈?
2016-10-26 回复 有任何疑惑可以回复我~
#2

nullundefine

原来是/list前面写成name了
2016-10-26 回复 有任何疑惑可以回复我~
#3

TaoHongBest

我也错在这了,lol
2018-09-16 回复 有任何疑惑可以回复我~

默认是localhost:8080/{项目名}

老师在配置文件默认就是/

所以就酱

0 回复 有任何疑惑可以回复我~

这是个坑啊,

输入URL:

http://localhost:8080/seckill

才能进入 LIST界面,不知道是啥原因,谁来指点一下

0 回复 有任何疑惑可以回复我~
#1

金小荣她老公

我的也是
2016-09-25 回复 有任何疑惑可以回复我~

@Controller
@RequestMapping("/seckill")
public class SeckillController {

    private final Logger logger = LoggerFactory.getLogger(this.getClass());
    @Autowired
    private SeckillService seckillService;
    
    @RequestMapping(value="/list",method=RequestMethod.GET)
    public String list(Model model) {
        model.addAttribute("list", seckillService.getSeckillList());
        return "list";
    }

......

0 回复 有任何疑惑可以回复我~

你Controller里面的RequestMapping是不是写错了?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么输入http://localhost:8080/seckill/list打不开列表界面

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信