问题:
- 我想在 web.xml 中将 servlet 'main' 设置为欢迎文件,但它显示警告“Web 内容中不存在对 main 的文件名引用”
- 浏览器无法访问 CSS 文件,但可以访问位于同一父目录“assests”下的图像
- 我想知道这两个问题是否相关以及如何解决它们
我已经提到的内容:
- > how-to-include-external-css-file-in-jsp
- 类似的 SO 问题:1 , 2 , 3
结果:
但在这两种情况下,都不会加载任何 CSS 文件。
我已经独立测试了 Brackets 中的前端并且工作正常。
网络.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<display-name>SampleApplication</display-name>
<welcome-file-list>
<welcome-file>main</welcome-file>
</welcome-file-list>
</web-app>
主Servlet.java
@WebServlet(name = "main", urlPatterns = { "/main" })
public class MainServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public MainServlet() {
super();
}
/**
* Forwards to the main page.
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher
= this.getServletContext().getRequestDispatcher("/WEB-INF/views/MainView.jsp");
dispatcher.forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//Additional Logic
}
主视图.jsp
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ship Short Dated Products</title>
<!-- ---------------------- BOOTSTRAP AND CUSTOM STYLESHEETS ----------------------- -->
<link rel="stylesheet" type="text/css"
href="<c:url value="http://fonts.googleapis.com/css?family=Roboto:400,100,300,500" />">
<link rel="stylesheet" type="text/css"
href="<c:url value="/assets/bootstrap-3.3.7-dist/css/bootstrap.min.css" />">
<link rel="stylesheet" type="text/css"
href="<c:url value="/assets/font-awesome/css/font-awesome.min.css" />">
<link rel="stylesheet" type="text/css"
href="<c:url value="/assets/css/form-elements.css" />">
<link rel="stylesheet" type="text/css"
href="<c:url value="/assets/css/main-layout.css" />">
<!--
--------------------------- JQUERY AND BOOTSTRAP PLUGINS -------------------------------
--------------------------- Please maintain the order for libs -------------------------
-->
<script
src="<c:url value="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" />"></script>
<script
src="<c:url value="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" />"></script>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- -------------------------------- IMAGE CONTENT -------------------------------- -->
<img class="img-responsive" src="assests/images/HMSGradient.jpg">
<!-- IMAGE CONTENT End -->
</body>
</html>
目录结构
谢谢!
最佳答案
您应该在 <welcome-file>
中定义一个欢迎文件列表元素。所以请尝试将其更改为 <welcome-file>MainView.jsp</welcome-file>
并将 jsp 文件移动到 WebContent/main/
.此外,您不需要 MainServlet.java
.
关于java - Web.xml 警告 "File name references to main that does not exist in web content",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800649/