J2EE学习笔记(一)

时间:2022-01-27 16:38:45

零碎的记录一些重要但容易遗忘的point,感觉上帝就没给我点这个记忆力的技能……

$. WEB-INF目录详解
WEB-INF目录客户端无法访问,只有服务器可以访问;
classes文件夹,放置.class文件;
lib文件夹,放置项目需要的jar包;
web.xml,项目部署文件;

$. web.xml中配置首页(直接url项目名称就能打开的页面)

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

$.修改MyEclipse默认的JRE
windows - preferences - java - installed JREs

$.修改MyEclipse默认的Tomcat
windows - preferences - MyEclipse - server - Tomcat - Tomcat Home Directory;
并修改对应的JDK;

$.修改项目虚拟路径
项目右键 - MyEclipse - web - Web Context-root

$.修改Tomcat默认端口
conf/server.xml

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

$.JSP页面组成
指令;表达式;小脚本;声明;注释;静态内容

$.JSP指令:page
language,JSP指定的脚本语言;
import,JSP中用到的类文件;
contentType,编码方式;
典型值:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"%>

$.请求重定向与请求转发的区别:
请求重定向:
response.sendRedirect(url); 本质上讲等于两次请求,前一次的请求对象不会保存,地址栏的URL会改变。
A去找B办事,B让A自己去找C。
请求转发:
request.getRequestDispatcher().foward(req, res); 一次请求,转发后对象会保存,地址栏URL不变。
A去找B办事,B让A等着,自己去找C,办完后B把结果返回给A。

$.JSP基础语法
1.注释

HTML注释:<!-- --> 客户端查看源码时可见
JSP注释:<%-- --%> 客户端查看源码时不可见

2.脚本

<% 
out.println("Hello world");
%>

3.声明

<%!
String s = "Hello world";
int add(int a, int b)
{
return a + b;
}
%>

4.表达式(注意,表达式不以分号结尾)

<body>
<%!
String s = "Hello world";
int add(int a, int b)
{
return a + b;
}
%>

x + y = <% = add(10, 5) %><br>
你好,<% = s %><br>
</body>

5.生命周期

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>

<head>
<title>life.jsp</title>
</head>

<body>

<%!
private int initVar = 0;
private int serviceVar = 0;
private int destroyVar = 0;
%>


<%!
public void jspInit()
{
initVar++;
System.out.println("jspInit(): JSP被初始化了" + initVar + "次");
}

public void jspDestroy()
{
destroyVar++;
System.out.println("jspDestroy(): JSP被销毁了" + destroyVar + "次");
}
%>


<%
serviceVar++;
System.out.println("_jspService(): JSP共响应了" + serviceVar + "次请求");

String content1 = "初始化次数 : " + initVar;
String content2 = "响应客户请求次数 : " + serviceVar;
String content3 = "销毁次数 : " + destroyVar;
%>


<h1>JSP生命周期测试</h1>
<p><%=content1%></p>
<p><%=content2%></p>
<p><%=content3%></p>

</body>

</html>

J2EE学习笔记(一)

$.解决中文乱码
标准方法:
修改Tomcat的server.xml文件,增加下面的URIEncoding

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>

简单方法:

<% request.setCharacterEncoding("UTF-8"); %>//只能解决post方式的请求

$.JSP内置对象(不需要new就可以使用)
1.out对象(JspWriter)
J2EE学习笔记(一)

2.request对象
J2EE学习笔记(一)
J2EE学习笔记(一)

3.response对象
J2EE学习笔记(一)
PrintWriter的输出优先于out对象的输出,除非out对象先flush

4.session对象
J2EE学习笔记(一)
J2EE学习笔记(一)
J2EE学习笔记(一)
J2EE学习笔记(一)
J2EE学习笔记(一)
J2EE学习笔记(一)

5.application对象
J2EE学习笔记(一)
J2EE学习笔记(一)

6.page对象
J2EE学习笔记(一)

7.pageContext对象
J2EE学习笔记(一)
J2EE学习笔记(一)

8.config对象
J2EE学习笔记(一)

9.exception对象
J2EE学习笔记(一)
在需要跳转的页面中的<%@ page %>中配置errorPage属性
在错误页中的<%@ page %>中配置isErrorPage属性为true