jetty9 如何支持jsp
问题描述
使用jetty9作为web容器,访问jsp时,提示一下错误:
HTTP ERROR 500 JSP support not configured
URI: /ip/
STATUS: 500
MESSAGE: JSP support not configured
SERVLET: jsp
Powered by Jetty:// 9.4.27.v20200227

解决办法
配置web服务时,需要将jsp.ini放置在 start.d目录。
jsp.ini该文件可以从以下位置找到:
%jetty_home%\demo-base\start.d
配置完成后,jsp文件访问正常:

完整代码
jetty服务目录结构
jetty-distribution-9.4.27.v20200227 --> jetty_home 目录
jetty-test --> jetty_base 目录
│ start-jetty-8080.bat --> jetty启动文件
├─start.d --> jetty 启动配置目录
│ deploy.ini
│ http.ini
│ jsp.ini --> 支持jsp
└─webapps --> web目录
└─ip
index.jsp
jetty启动脚本
start-jetty-8080.bat
@echo off
rem set web infos
set ip=127.0.0.1
set port=8080
set title=test-[%port%][%date% %time%]
rem set java opts
set java_opts=-Xmx256m -Xms256m
set JETTY_HOME=D:\dev\jetty-distribution-9.4.27.v20200227
set JETTY_BASE=%cd%
rem set jetty params
set jetty_params=jetty.http.port=%port%
set jetty_params=%jetty_params% jetty.http.host=%ip%
rem set _execjava=java
set _execjava=start "%title%" java
%_execjava% %java_opts% -jar %JETTY_HOME%/start.jar %jetty_params%
index.jsp代码
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head><title>test ip</title></head>
<body>
<h1><font color="blue">Client Info</h1>
<table align="centre" border="1">
<tr>
<td>Session ID</td>
<% session.setAttribute("my.name","zhangSan"); %>
<td><%= session.getId() %></td>
</tr>
<tr>
<td>Server IP</td>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getLocalAddr() +":"+request.getLocalPort()+path+"/";
String clientIp1 = request.getRemoteAddr();
String clientIp2 = request.getHeader("X-Real-IP");
%>
<td><%=basePath%></td>
</tr>
<tr>
<td>Created on</td>
<td><%= session.getCreationTime() %></td>
</tr>
<tr>
<td>Ip from Web</td>
<td><%= clientIp1 %></td>
</tr>
<tr>
<td>Ip from Nginx</td>
<td><%= clientIp2 %></td>
</tr>
</table>
</body>
</html>
本文介绍了解决Jetty9作为web容器时,访问jsp出现“JSPsupportnotconfigured”错误的方法。通过在start.d目录下放置jsp.ini文件,可以成功配置Jetty9支持jsp。文章还提供了jetty服务目录结构、启动脚本及index.jsp代码示例。
3387

被折叠的 条评论
为什么被折叠?



