JSP

JSP

1. JSP概念:java server page,它和servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为jsp/servlet规范,本质是一个servlet .
HTML:只能开发静态资源,不能包含java代码.无法添加动态数据.
Servlet:写java代码,可以输出页面内容,但是很不方便,开发效率极低.
JSP:Html+servlet

2. JSP的执行流程
浏览器-->Tomcat-->应用-->把Demo.jsp文件翻译成Demo_jsp.java-->在编译成Demo_jsp.class-->输出内容到浏览器


3.jsp语法

java代码块---><%   %> --->被翻译到demo_jsp.java文件的什么位置: _jspService(request,response){------}

jsp的表达式--><%=  %> --->被翻译到demo_jsp.java文件的什么位置: _jspService(request,response){------}-->out.print();

jsp的声明----><%!  %> --->被翻译到demo_jsp.java文件的什么位置:  _jspService()方法外部


4.jsp的三大指令
page指令<%@ page %>
属性:import导入包
pageEncoding:指定当前的jsp页面的编码
include指令<%@include  file=" " %> 是静态包含:只生成一个.java文件,编译成一个.class文件
taglib指令<%@taglib uri="--" prefix="c"%>
作用是导入第三方的标签库 uri 对应的值是第三方标签库的地址
prefix 对应的第三方标签的前缀<c:if></c:if>   <c:forEach></c:fprEach>

5.jsp的内置标签
动态包含<jsp:include page="--">
转发:<jsp:forward page="--">

6.jsp的异常处理
(1)如果是语法错误,在jsp页面找错
(2)如果是500(运行时异常),在_jsp.java文件里找异常

7.jsp中的useBean标签
<jsp:useBean id="" class="" scope=" ">
id对应的值:域对象中的keypageContext.setAttribute("key",new User());
class对应值:包名.类名
scope对应的值:域的范围 page,request,session,application四个里面选一个

8.复制标签<jsp:setProperty>
   取值标签<jsp:getProperty>

9.jsp九大隐式对象
   ServletContext--------->application
   HttpSession ----------->session 
   HttpServletRequest-->request
   HttpServletRequest-->response
   JspWrite---------------->out
   ServletConfig--------->config
   Throwable------------->exception
    Object----------------->page
    PageContext ------->pageContext

10.jsp四大域对象
pageContext-- request-- session--application
pageContext(1)可以得到其他8个隐式对象
(2)可以操作其他三个域对象
(3)全域查找:范围从小到大page->request->session->application


MVC设计模式

 mvc设计模式: 针对表现层

m: model  模型  

作用: 封装数据  ,对应包结构  com.baidu.day09.domain

v: view   视图

作用: 显示 ,给用户看的 在WEB-ROOT

c: controller 控制器

作用: 处理浏览器(页面)发送的请求,并且响应内容给页面.

          对应的包结构  com.baidu.day09.web.controll

json-lib

json-lib: JSONArray  JSONObject  方法:fromObject 

             JsonConfig  setExcludes();//过滤属性参数是被过滤的属性

package com.itheima.json;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import org.junit.Test;

import com.itheima.domain.Book;
import com.itheima.domain.BookDB;
import com.itheima.domain.Student;

/**
 * Json-lib的使用
 * @author zhy
 *
 */
public class JsonDemo {

	//使用JsonArray对象转json数据格式
	//转数组
	@Test
	public void test1(){
		String[] str = {"a","b","c","d"};
		JSONArray ja = JSONArray.fromObject(str);
		System.out.println(ja);
	}
	
	//转list
	@Test
	public void test2(){
		List<String> slist = new ArrayList<String>();
		slist.add("aa");
		slist.add("bb");
		slist.add("cc");
		slist.add("dd");
		JSONArray ja = JSONArray.fromObject(slist);
		System.out.println(ja);
	}
	
	//转Map
	@Test
	public void test3(){
		Map<String,String> map = new HashMap<String,String>();
		map.put("key1", "value1");
		map.put("key2", "value2");
		map.put("key3", "value3");
		JSONArray ja = JSONArray.fromObject(map);
		System.out.println(ja);
	} 
	
	//使用JSONObject生成json对象
	//转Map
	@Test
	public void test4(){
		Map<String,String> map = new HashMap<String,String>();
		map.put("key1", "value1");
		map.put("key2", "value2");
		map.put("key3", "value3");
		JSONObject jo = JSONObject.fromObject(map);
		System.out.println(jo);
	} 
	
	//转javabean
	@Test
	public void test5(){
		Student s = new Student("泰斯特","male","22");
		JSONObject jo = JSONObject.fromObject(s);
		System.out.println(jo);
	}
	
	//使用JSONArray转换List<javabean>
	@Test
	public void test6(){
		List<Book> blist = BookDB.findAll();
		JSONArray ja = JSONArray.fromObject(blist);
		System.out.println(ja);
	}
	
	
	//使用JsonConfig过滤不需要的属性
	@Test
	public void test7(){
		List<Book> blist = BookDB.findAll();
		JsonConfig jc = new JsonConfig();//定义一个Json的配置对象
		jc.setExcludes(new String[]{"id"});//设置不想显示的属性名称
		JSONArray ja = JSONArray.fromObject(blist,jc);//在转换时,需要把jc传给JSONArray
		System.out.println(ja);
	}

}




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值