1.jsp是什么?
- 是HTML吗?不是。
- jsp本质还是一个Java文件,是servlet。
- 底层有一个翻译引擎,会把我们写的东西翻译成对应的结果输出。out.write()的方式输出。
2.如何在jsp中写Java代码
1.第一种
<%%>,可以在其中写Java代码
用<%%>是写在方法中的,写在service方法中
<%
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add("a");
for (Object o:list) {
System.out.println(o);
}
//定义一个私有变量,不能有修饰符,方法中不能有修饰符修饰的变量
// private String name;
// public String namee;
String name1;
%>
2.第二种
\<%!%>,可以写java代码 是写在service方法的外面 第一种的里面可以用这个定义的共有变量
<%!
private String name;
public int age = 17;
%>
3.第三种
想把Java对象展示到浏览器上,<%=%>
<%!
private String name;
public int age = 17;
%>
<%=age%>
3.jsp的八大内置对象
4.jsp中的el表达式
- el出现的目的
- 方便我们从域中取出对象
格式1:
使用el表达式获取域中的值,直接把key放在大括号中
默认规则:如果没有指定在哪个域中取数据,默认先从最小的域中取,如果没有再去取大一点的域中找
指定的域中找: el表达式内置域对象
- pageScope:表示从pageContext中去找
- requestScope:表示从request中去找
- sessionScope:表示从session中去找
- applicationScope:表示从session中去找
<%
//像各个域中存放数据
pageContext.setAttribute("username","pageContext");
request.setAttribute("username","request");
session.setAttribute("username","session");
application.setAttribute("username","application");
%>
${pageScope.username}
${requestScope.username}
${sessionScope.username}
${applicationScope.username}
<br>
格式2:
在域中使用el表达式获取Java对象
使用el表达式获取person对象:底层依据,依赖的是get方法
//获取person对象
<%
Person person = new Person();
person.setName("zs");
person.setAge(17);
person.setAddress("成都市金牛区");
//把Java对象放在域中,请求域
request.setAttribute("person",person);
%>
${person.name}
${person.age}
${person.address}
${person.sala}
<br>
<br>
<%--如何从map从取数据--%>
<%
HashMap<String, String> map = new HashMap<>();
map.put("username","admin");
map.put("password","123");
map.put("sex","1");
// 把map放在请求域中
request.setAttribute("map",map);
%>
<%--获取map中的值--%>
${map.username}
${map.password}
${map.sex}
<br>
<br>
<%
ArrayList<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");
request.setAttribute("list",list);
%>
<%--获取集合中的数据--%>
${list[0]}
${list[1]}
${list[2]}