问题?jsp的四大域对象是那些?解析xml映射jsp文件?jsp常用标签是那些?
一、jsp的四大域对象
JSP中隐式对象的名称 | 范围名称 | 具体的类型 |
PageContext | page | javax.servlet.jsp.PageContext |
request | request | javax.servlet.ServletRequest (显示完数据就没有用了) |
session | session | javax.servlet.http.HttpSession (显示完数据了,过一会自己还要用) |
application | application | javax.servlet.ServletContext (显示完数据了,大家都要用。不建议使用,如果使用,必须同步处理) |
四大域对象的使用例子:
Bean类
package com.dp.javaweb.servlet;
public class Book {
private String id;
private String name;
private String author;
private float price;
private String description;
public Book() {}
public Book(String id, String name, String author, float price,
String description) {
super();
this.id = id;
this.name = name;
this.author = author;
this.price = price;
this.description = description;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Book [id=" + id + ", name=" + name + ", author=" + author
+ ", price=" + price + ", description=" + description + "]";
}
}
原始数据类
package com.dp.javaweb.servlet;
import java.util.LinkedHashMap;
import java.util.Map;
//在实际开发中是没有改类的。因为在实际开发中,我们用的时候数据库
public class BookDtatbase {
private static Map<String, Book> books=new LinkedHashMap<String, Book>();
static{
books.put("1", new Book("1", "葵花宝典", "Mr_Li13", 35.5f, "词典必练!"));
books.put("2", new Book("2", "独孤九剑", "Mr_Li13", 34.5f, "练者必究!"));
books.put("3", new Book("3", "独孤九剑", "Mr_Li13", 34.5f, "练者必究!"));
books.put("4", new Book("4", "独孤九剑", "Mr_Li13", 34.5f, "练者必究!"));
}
public static Book findBookId(String bookid){
return books.get(bookid);
}
public static Map<String, Book> findallbooks(){
return books;
}
}
servlet类
package com.dp.javaweb.servlet;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDom1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Map<String, Book> books=BookDtatbase.findallbooks();
request.setAttribute("books", books);
request.getRequestDispatcher("/13.jsp").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
显示在jsp页面
<%@page import="com.dp.javaweb.servlet.Book"%>
<%@ page language="java" import="java.util.*" 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">
<html>
<head>
<base href="<%=basePath%>">
<title>书籍</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<h1>本网站有以下书籍</h1>
<table border="1" width="88%">
<tr>
<th>书名</th>
<th>作者</th>
<th>售价</th>
<th>简介</th>
</tr>
<%
Map<String,Book> books=(Map<String,Book>)request.getAttribute("books");
for(Map.Entry<String,Book>me:books.entrySet()){
Book book=me.getValue();
%>
<tr>
<td><%=book.getName()%></td>
<td><%=book.getAuthor() %></td>
<td><%=book.getPrice() %></td>
<td><%=book.getDescription() %></td>
</tr>
<%} %>
</table>
</body>
</html>
走servlet类,转发至jsp页面,看结果:
二、jsp常用标签
<jsp:include/>//包含
<jsp:forward/>//转发
<jsp:param/>//在包含和转发时,利用该标签传递请求参数
例子说明:
14.jsp
<body>
<jsp:forward page="/15.jsp">
<jsp:param value="Mr_Li13" name="username"/>
<jsp:param value="123456" name="password"/>
</jsp:forward>
</body>
15.jsp
<body>
<h1>用户名:<%=request.getParameter("username") %></h1>
<h1>密 码:<%=request.getParameter("password") %></h1>
</body>
结果显示:
三、解析xml映射jsp文件
<servlet>
<servlet-name>jspname</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>jspname</servlet-name>
<url-pattern>/index.html</url-pattern>
</servlet-mapping>
index.jsp
<body>
This is my index.html <br>
</body>
结果:所有有时候我们在浏览网页的时候看到的html后缀,不一定就是html文件