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

我用的eclipse,建立的项目运行,照着视频抄的,出问题了,急求帮助

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
<display-name>MicroMessage</display-name>
<welcome-file-list>
<!-- <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> -->
<welcome-file>index.jsp</welcome-file>
<!-- <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> -->
</welcome-file-list>

<servlet>
<!-- 接下来要跳转到一个列表页面 -->
<servlet-name>ListServlet</servlet-name>
<!-- servlet类 -->
<servlet-class>com.imooc.servlet.ListServlet</servlet-class>

</servlet>
<!-- 添加映射 -->
<servlet-mapping>
<servlet-name>ListServlet</servlet-name>
<url-pattern>/List.action</url-pattern>
</servlet-mapping>

</web-app>

ListServlet.java

package com.imooc.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 列表页面初始化控制
 * 
 *
 * @SuppressWarnings("serial") 类可序列化的原因
 */
@SuppressWarnings("serial")
public class ListServlet extends HttpServlet {
	// 实现doGet方法
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		req.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doGet(req, resp);
	}
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<% String path=request.getContextPath();
   String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
   <base href="<%=basePath%>"> %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE" />
<title>内容列表页面</title>
<link href="<%=basePath %>resources/css/all.css" rel="stylesheet" type="text/css" />
</head>
<body style="background: #e1e9eb;">
	<form action="" id="mainForm" method="post">
		<div class="right">
			<div class="current">
				当前位置:<a href="javascript:void(0)" style="color: #6E6E6E;">内容管理</a>
				&gt; 内容列表
			</div>
			<div class="rightCont">
				<p class="g_title fix">
					内容列表 <a class="btn03" href="#">新 增</a>&nbsp;&nbsp;&nbsp;&nbsp;<a
						class="btn03" href="#">删 除</a>
				</p>
				<table class="tab1">
					<tbody>
						<tr>
							<td width="90" align="right">演示字段1:</td>
							<td><input type="text" class="allInput" value="" /></td>
							<td width="90" align="right">演示字段2:</td>
							<td><input type="text" class="allInput" value="" /></td>
							<td width="85" align="right"><input type="submit"
								class="tabSub" value="查 询" /></td>
						</tr>
					</tbody>
				</table>
				<div class="zixun fix">
					<table class="tab2" width="100%">
						<tbody>
							<tr>
								<th><input type="checkbox" id="all" onclick="#" /></th>
								<th>序号</th>
								<th>演示字段1</th>
								<th>演示字段2</th>
								<th>操作</th>
							</tr>
							<tr>
								<td><input type="checkbox" /></td>
								<td>1</td>
								<td>演示值1</td>
								<td>演示值2</td>
								<td><a href="#">修改</a>&nbsp;&nbsp;&nbsp; <a href="#">删除</a>
								</td>
							</tr>
							<tr style="background-color: #ECF6EE;">
								<td><input type="checkbox" /></td>
								<td>2</td>
								<td>演示值1</td>
								<td>演示值2</td>
								<td><a href="#">修改</a>&nbsp;&nbsp;&nbsp; <a href="#">删除</a>
								</td>
							</tr>
							<tr>
								<td><input type="checkbox" /></td>
								<td>3</td>
								<td>演示值1</td>
								<td>演示值2</td>
								<td><a href="#">修改</a>&nbsp;&nbsp;&nbsp; <a href="#">删除</a>
								</td>
							</tr>
							<tr style="background-color: #ECF6EE;">
								<td><input type="checkbox" /></td>
								<td>4</td>
								<td>演示值1</td>
								<td>演示值2</td>
								<td><a href="#">修改</a>&nbsp;&nbsp;&nbsp; <a href="#">删除</a>
								</td>
							</tr>
						</tbody>
					</table>
					<div class='page fix'>
						共 <b>4</b> 条 <a href='###' class='first'>首页</a> <a href='###'
							class='pre'>上一页</a> 当前第<span>1/1</span>页 <a href='###'
							class='next'>下一页</a> <a href='###' class='last'>末页</a> 跳至&nbsp;<input
							type='text' value='1' class='allInput w28' />&nbsp;页&nbsp; <a
							href='###' class='go'>GO</a>
					</div>
				</div>
			</div>
		</div>
	</form>
</body>
</html>

http://img1.sycdn.imooc.com//59ba9afc0001cd3805440708.jpg

http://img1.sycdn.imooc.com//59ba9b380001dae415800742.jpg

正在回答

6 回答

我很好奇, 放在WEB-INF下的jsp网页不是不能直接访问吗, 我试了好久, 最后把jsp文件夹放在Webroot下, 再修改servlet的forward路径, 才可以在浏览器里面直接输入url访问jsp

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

tinysnail

删除不了,我写错了. 实际上是因为我没将.html改成jsp
2018-06-02 回复 有任何疑惑可以回复我~

代码没毛病,我用eclipse跑的,能走通. 检查你的tomcat配置

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

eclipse上我试了下清缓存,打断点之类的操作,根本http://localhost:8080/MicroMessage/List.action请求就没进入到ListServlet类,看了几篇博客又试了下,用IntelliJ IDEA重新构建的项目,发现按照视频套路出牌确实还是报错,然后我就试了下http://localhost:8090/List.action  (我将发布的请求端口号改掉了8090,因为本机HTTP  port 8080和JMX port 1099都被占用)。这样确实是请求到页面了。理解:从web.xml配置文件出发,也能理解成/List.action映射到ListServlet类,执行类的方法,跳转到了list.jsp,不知道我这样理解对还是错?

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

qq_木头人春天_0 提问者

补充 我早上在家用的是自己的电脑,上班用公司的 所以这是不会有交叉的问题,比如早上端口冲突啥的,不会发生
2017-09-15 回复 有任何疑惑可以回复我~

早上我试了下清缓存,打断点之类的操作,根本http://localhost:8090/List.action请求就没进入到ListServlet类,看了几篇博客又试了下,用IntelliJ IDEA重新构建的项目,发现按照视频套路出牌确实还是报错,然后我就试了下http://localhost:8090/List.action,这样确实是请求到页面了。理解:从web.xml配置文件出发,也能理解成/List.action映射到ListServlet类,执行类的方法,跳转到了list.jsp,不知道我这样理解对还是错?

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

应该是web.xml映射到listSerlet.class由类内部doGet方法跳转到list.jsp才对啊。和表单没啥关系。访问是通过浏览器URL访问的/List.Action。求解

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

404错误一般是找不到servlet对应的url  你的jsp页面中的form的action没填

建议你跟着老师一步一步敲代码吧 老师讲得很好

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

举报

0/150
提交
取消

我用的eclipse,建立的项目运行,照着视频抄的,出问题了,急求帮助

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