有没有办法调用servlet index.jsp?我的欢迎档案是index.jsp.我需要在index.jsp打开时通过servlet填充下拉列表值.
我试图设置<load-on-startup>在web.xml,但没有任何效果.如何获取欢迎文件index.jsp来调用servlet?
由于某种原因想法灯调度程序servlet和我启动tomcat时得到404错误.我使用的是spring mvc和Maven,这是web.xml的图片
感谢每个答案=)webapp/web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud) 可能重复:
Servlet映射/ vs/*
servlet url映射中'/'和'/*'有什么区别?
因为我正在阅读春天的书,我找到了这些话:
接下来,我们必须指出DispatcherServlet将处理哪些URL.通常会发现DispatcherServlet映射到URL模式,例如.htm,/或/ app.但是这些URL模式存在一些问题:
- *.htm模式意味着响应将始终采用HTML格式(正如我们将在第11章中学到的那样,并不一定如此).
- 将其映射到/*并不意味着任何指定的响应类型,但表示DispatcherServlet将为所有请求提供服务.这使得服务静态内容(如图像和样式表)比必要更困难.
- / app模式(或类似的东西)帮助我们区分Dispatcher-Servlet提供的内容与其他类型的内容.但是我们在URL中公开了一个实现细节(特别是/ app路径).这导致复杂的URL重写策略隐藏/ app路径.
而不是使用任何有缺陷的servlet映射方案,我更喜欢像这样映射DispatcherServlet:
Run Code Online (Sandbox Code Playgroud)<servlet-mapping> <servlet-name>spitter</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>通过将DispatcherServlet映射到/,我说它是默认的servlet,并且它将负责处理所有请求,包括对静态内容的请求.
根据上面的话,似乎'/'和'/*'都将服务于所有请求.
有什么不同?
我在web.xml下面注册了一个 servlet 。
<servlet>
<servlet-name>Manager</servlet-name>
<servlet-class>Manager</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/RequestManager</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
基本上,当我打开http://localhost:8080/appname. 因此,我尝试将其注册为欢迎文件,web.xml如下所示:
<welcome-file-list>
<welcome-file>Manager</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该项目时,我收到一条错误消息,提示“请求的资源不可用”。但是,如果我用我的 servlet URL 模式在 url 中写入,它就可以正常工作。
web.xml中/和/*有什么区别?
对于调度程序servlet /使用,我想这意味着所有的请求.在这种情况下,url-pattern"/*"是什么意思?
我想将我的 servlet 映射到/*,但它因无限循环而失败。
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>my.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
Java代码是:
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response){
request.getRequestDispatcher("/WEB-INF/jsps/hello.jsp").forward(request, response);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我映射到/hello,一切正常。
当HelloServlet映射到 时/*,它也会被调用RequestDispatcher#forward()并导致无限循环。
这是怎么引起的,我该如何解决?
我有一个Java EE应用程序,在应用程序中我有以下结构.
WEB-INF
layout
header.jsp
styles
main.css
Run Code Online (Sandbox Code Playgroud)
我想包括在main.css在header.jsp.我试图用以下内容(其中......是路径):
<link rel="stylesheet" href="...">
Run Code Online (Sandbox Code Playgroud)
但是,我似乎无法找到正确的道路.我已经尝试过以下各项而没有运气:
../styles/main.css
/styles/main.css
styles/main.css
/WEB-INF/styles/main.css
WEB-INF/styles/main.css
Run Code Online (Sandbox Code Playgroud)
什么是正确的道路?
web.xml中
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/webmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
/WEB-INF/spring/webmvc-config.xml
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="mediaTypes">
<map>
<entry key="atom" value="application/atom+xml" />
<entry key="html" value="text/html" />
<entry key="json" value="application/json" />
</map>
</property>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver" />
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/" />
<property name="suffix" value=".jsp" />
</bean>
</list>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
调节器
@Controller
@RequestMapping ( "/" )
public class IndexController extends BaseController
{
@RequestMapping ( "/" …Run Code Online (Sandbox Code Playgroud) 我的jsp文件找不到我的javascript文件.在这里你可以看到我的jsp文件:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="ressources/js/addMatrix.js"></script>
</head>
<body>
<div ng-app="App" ng-controller="MainCtrl">
<p>Add a new element : </p>
<table>
<tr>
<td data-ng-repeat="data in texts">
<button>{{data.text}}</button>
</td>
<td data-ng-repeat="field in fields">
<form ng-submit="submit(text)">
<input type="text" ng-model="text" name="text"
placeholder="New Category" />
</form>
</td>
<td>
<button ng-click="addNewChoice()">+</button>
</td>
</tr>
</table>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的javascript文件位于文件夹/ WebContent/ressources/js中,jsp文件位于文件夹/ WebContent中.
我的servlet只在get方法中包含这个调用:
this.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);
Run Code Online (Sandbox Code Playgroud)
我的web.xml文件如下所示:
<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>Home</servlet-name>
<servlet-class>com.pi.servlets.Index</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Home</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> …Run Code Online (Sandbox Code Playgroud) servlets ×7
java ×4
jsp ×3
spring ×3
welcome-file ×2
css ×1
html ×1
mapping ×1
maven ×1
path ×1
spring-mvc ×1
tomcat7 ×1
url-pattern ×1
web.xml ×1