第1章节
1.软件开发的三大领域:
桌面应用程序:QQ等
Web应用程序:天猫、京东
移动互联网:安卓、苹果开发等。
对于一般多数人基本走2者,然后基本上java是每个搞开发的人必学的了。
2.Tomcat服务器
- 是Apache下开源的项目
- JSP/Servlet容器
3.Tomcat的目录结构
在/bin下会有个startup/shutdown的windows脚本,是关闭和启动tomcat的。
4.修改Tomcat默认端口号:
第2章节:JSP基础语法
JSP简介
注意:JSP其实是1种简化的Servlet技术,为什么这么说呢?因为你写好的JSP编译后,在tomcat发布下后,会发现jsp会被转化成servlet,然后被编译成一种.class文件;
其实Servlet自己就可以把页面+后端逻辑全部自己显示出来,但是因为这样子搞得servlet内部代码臃肿,所以就用jsp来分开做。
常见动态网站开发技术对比
JSP页面元素
JSP指令
page指令
如下所示:
<%@ page contentType="text/html;charset=UTF-8" import="java.util.*" language="java" %>
JSP注释
<body>
<!--我是HTML注释-->
<%-- 我是JSP注释,客户端不可见--%>
<%
//单行注释
/*多行注释*/
//不可见
%>
</body>
JSP脚本
<%
out.println("hello world!");
%>
JSP声明
<%!
String s = "lwx";//声明1个字符串变量
int add(int x ,int y)//声明l一个方法
{
return x+y;
}
%>
JSP表达式
<br>
<%=s %>
<br>
x+y=<%=add(10,5)%>
重要点:JSP页面生命周期
所以,当JSP页面内容改变后就需要重新启动Tomcat,重新编译运行,遇到过一个坑,这里。
第3章节
JSP内置对象
.右边单个列出的比较常用
缓冲区的概念:(百度)
缓冲区无非就是定义了一个数组,并对外提供了更多的方法对数组进行访问。
其实这些方法最终操作的都是数组的角标。
缓冲的原理:
其实就是从源中获取一批数据装进缓冲区中,再从缓冲区中不断地取出一个一个的数据。
在此次取完后,再从源中继续取出下一批数据进入缓冲区。当源中的数据取完后,用-1作为结束标记。
将数据源一部分加载到内存,然后需要用的时候直接在内存中操作,而不是再去从源文件读取,加快读写速度;
out对象的API
结合例子在学习缓冲区的flush()
前面3句会利用缓冲区一下子输出来,而后面2句就会分开一句一句输出,
加上flush()后会导致缓冲区变大了;
<%
out.println("<h2> 你好</h2>");
out.println("<h2> 你好</h2>");
out.println("<h2> 你好</h2>");
out.flush();
out.println("<h2> 你好</h2>");
out.println("<h2> 你好</h2>");
%>
缓冲区大小:<%= out.getBufferSize()%>byte<br>
缓冲区剩余大小:<%= out.getRemaining()%><br>
是否自动清空:<%=out.isAutoFlush()%>
Get、Post区别
request对象
1.表单传参
用户名:<%=request.getParameter("username")%><br>
爱好:<%
String [] favorites = request.getParameterValues("favorite");
for (String i : favorites)
out.println(i);
%>
关于中文乱码问题:
你编写的注册页面是UTF-8的,但是用户填写的如果是中文,则默认用IOS-8859-1编写,所以到后台需要set成utf-8进行转码,然后再相应回去,就是你编写页面的UTF-8了。
2. URL传参
<a href="request.jsp?username=list">测试URL传参数</a>
注意: 如果URL带中文参数,需要配置tomcat的配置文件来修正。
这2中都可以用request对象得到他们的参数
<%
request.setAttribute("password","13215");
%>
密码:<%=request.getAttribute("password")%><br>
请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号:<%=request.getProtocol() %><br>
服务器主机名:<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><br>
请求文件的长度:<%=request.getContentLength() %><br>
请求客户端的IP地址:<%=request.getRemoteAddr() %><br>
请求的真实路径:<%=request.getRealPath("hello.jsp") %><br>
请求的上下文路径:<%=request.getContextPath() %><br>
注意;上下文路径:项目的虚拟路径。
response对象
答案:提前于内置对象out输出;
解决:用out.flush()清空缓冲区
请求重定向与请求转发
Seesion对象
1.session简介:
2.
Session的API
session会话超时时间设置
application对象
application简介:
application对象的API
Page对象
Page对象的API
pageContext对象
Config对象
exceptin对象
注:
抛出异常页面<@errorPage=”exception.jsp”>,指定异常处理的页面
处理异常页面加isErrorPage=”true”,才能用exception对象
阶段项目实现第一种方式1
可以使用内置对象来完成,后面会用到分层javaBeans来实现它。
第4章节:JavaBeans
JavaBeans设计原则
例子:
JSP动作标签
利用useBeans动作标签使用javaBeans
如果不使用动作标签,则在JSP页面使用javaBeans的话,需要import;
但是如果使用的话,看下面的实例:(其实就是和使用框架一样,简化许多)
setProperty为javaBeans设值
方法:
例子:
使用getProperty来获取javaBeans的属性值
方法:
例子:
javabeans4个作用域测试
1.scope = applicaiton的测试例子
其他的3种类似这样子
Model1模型
用法:
利用模型1的思想javabeans技术来实现上次阶段项目
第5章节JSP状态管理
Cookie的作用
他是保存在客户端的一系列文本
例如:购物车的使用;浏览记录,记录浏览过视频记录;自动登陆等
JSP页面使用cookie
Cookie的API
注意:当用Cookie保存中文时,需要用到java.net包下的编码解码类来处理,不然会出现500错误
session与cookie的对比
第7章节指令与动作
include指令与include动作
2者之间的区别
forward动作
param动作
例子: