悠悠楠杉
jsp使用request为页面添加静态数据的实例
1. 创建Java Servlet
首先,创建一个名为ArticleServlet
的Servlet,用于处理文章数据的生成和设置。
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class ArticleServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置文章属性
String title = request.getParameter("title");
String keywords = request.getParameter("keywords");
String description = request.getParameter("description");
String content = request.getParameter("content");
// 将数据放入request属性中,以便在JSP中访问
request.setAttribute("title", title);
request.setAttribute("keywords", keywords);
request.setAttribute("description", description);
request.setAttribute("content", content);
// 设置Content-Type为Markdown的MIME类型,虽然这不会改变HTML页面的显示方式,但可以方便其他使用场景下直接查看Markdown格式
response.setContentType("text/markdown;charset=UTF-8");
// 发送到JSP页面显示
request.getRequestDispatcher("/WEB-INF/article.jsp").forward(request, response);
}
}
```
2. 创建JSP页面(article.jsp)
WEB-INF目录下,以增强安全性。
```jsp
<%@ page contentType="text/markdown;charset=UTF-8" language="java" %>
${title}
文章关键词: ${keywords}
描述:
${description}
${content}
```
在上述JSP页面中,我们使用EL表达式(response,但这并不会使浏览器以Markdown渲染器显示内容,而是设置了HTTP响应的内容类型为Markdown的MIME类型。这主要是为了方便其他场景下直接处理Markdown内容,例如通过脚本或工具解析Markdown。对于浏览器显示,浏览器会按照普通文本处理这类内容。
3. 配置web.xml或Servlet 3.0注解来映射Servlet URL(选择其一)
- 通过web.xml配置:在
WEB-INF/web.xml
中添加以下条目:xml <servlet> <servlet-name>ArticleServlet</servlet-name> <servlet-class>com.example.ArticleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ArticleServlet</servlet-name> <url-pattern>/generateArticle</url-pattern> </servlet-mapping>
确保将com.example.ArticleServlet
替换为你的实际包名和类名。 - 使用Servlet 3.0注解:在
ArticleServlet
类上添加以下注解:java @WebServlet(name = "ArticleServlet", urlPatterns = "/generateArticle")
这样就不需要修改web.xml
了。
当你想生成文章时,可以通过浏览器访问URL如http://yourdomain.com/yourapp/generateArticle?title=你的标题&keywords=关键词1,关键词2&description=这里是描述&content=这里是正文内容...
。