jsp的四大域对象解析及xml映射jsp及jsp常用标签

问题?jsp的四大域对象是那些?解析xml映射jsp文件?jsp常用标签是那些?

一、jsp的四大域对象

JSP中隐式对象的名称
范围名称
具体的类型
PageContextpagejavax.servlet.jsp.PageContext
requestrequestjavax.servlet.ServletRequest  (显示完数据就没有用了)
sessionsessionjavax.servlet.http.HttpSession (显示完数据了,过一会自己还要用)
applicationapplicationjavax.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文件

              



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值