2016年4月6日11:46:13
1.web编程
B/S架构 : 必须借助浏览器
C/S:不借助浏览器可以执行
Tomcat服务器
在你眼中的服务器:只要能对外提供服务的都是服务器
常见服务器
Java:
Tomcat
WebLogic
jboss
微软提供
IIS Internet Information server
2.如何在MyEclipse集成自己的Tomcat
2016年4月10日08:40:16
1.开始扩展内置对象 out,request,response,session,application
2.cookie
3.转发和重定向
------------------------------------------------------------
1.jdbc servlet 过滤器和监听器
-------------------------------------------------------------
2.封装表单数据为强类型对象
-------------------------------------------------------------
3.过滤器和监听器
---------------------------------------------------------------
4.分页查询 文件上传
3.jsp页面元素
----------------------------------------------------------------
1.B/S(browser/Server)架构的阐述
2.常见的Web服务器
3.关于Tomcat这款Web容器的目录架构
解析:conf:存储配置信息
bin:开启或者停止tomcat
lib:jar包
webapps:存放项目的文件夹
work:生成的.class文件保存位置
jsp本质是一个servlet,servlet就是一个java类
4.jsp页面的元素
_JspWriter(){
}
<% %>:小脚本
<%= %>:表达式
<%! 方法%>:声明
html静态标签
**********************2016年4月10日授课************************************
1.page指令
2.三种注释
----html注释 三者(jsp本身,后台servlet类,前端的html)都出现
----java注释 二者(jsp本身,和后台类)出现
----jsp注释 只在当前jsp页面
3.request详解
javaEE API javaEE源码
4.绝对路径
5.path的讲解
6.重定向和转发
从1.jsp 到 2.jsp
转发方案:request.getRequestDispatcher("2.jsp").forward(request,response);
重定向:response.sendRedirect(url);
转发可以保存一次请求内的数据,例如登录的用户名。但是重定向不行,因为重定向需要两次请求
1:从请求次数角度来看:重定向2次请求,转发一次请求
2:从URL地址角度来看:重定向是定向后的页面,转发页面地址不变
3. 从位置来看:重定向2次请求都是客户端主动发起的。
----Session
F49C4BB8E2A07DC0A71AF62A0EC9DB48
F49C4BB8E2A07DC0A71AF62A0EC9DB48
Http协议 特性:无状态性
Session
Cookie
application:几率为-1
4.URL和URI
解析:Uniform Resource Locator:统一资源定位符
协议://地址:端口号/资源路径
URI:(Identifier)标识符:
*区别:从范围看,URI范围广
从功能角度看,URL(定位到)
URI(资源)
5.如何将TOmcat集成到MyEclipse这个IDE中
解析:常见启动失败问题:
引发原因:部署失败,或者端口号被占用。
解决方案:停止控制台的tomcat,重新启动MyEclipse
中的tomcat
6.如何修改web工程的名称
解析:1.F2更改
2.项目的属性中,MyEclipse下的web
7.什么是动态网站?
解析:web1.0 web2.0
能和用户交互的交互网站。
8.jsp(Java server Pages) java服务器页面
其他技术开发动态:
Php(引擎) mvc
asp.net
*批判jsp 烩面(汤,青菜,面!牛肉):
<html>
<%
html
%>
9.pageEncoding和 contentType区别?
解析:
pageEncoding="UTF-8"(控制当前jsp页面是否能出现汉字)
contentType="text/html; charset=ISO-8859-1" (回送给client时候
,浏览器用哪种编码展示数据)
10.jsp页面元素
<%
%>:小脚本
<%=%>:表达式
<%!%>:声明,方法定义可以放到这里
<%@%>:指令
html标签
注释
三种:
<!--我是html注释--> 结论:三处都有
<%--jsp注释--%>结论;当前jsp页面有
//:jsp页面和生成的java类中有
2015年11月15日11:07:11
第二课
01.什么是内置对象?
解析:不需要实例化就可以直接使用的对象。
Dog dog=new Dog();
Student stu=new Student();
Cat cat=new Cat();
02.到底是谁帮我们new了?
解析:Tomcat容器:new了。
03.你眼中的request
解析:客户端打过来的请求,首先被对应的服务器
操作系统的内核模块(kornel)捕捉到,然后交给Tomcat容器的8080端口。
我已经将客户端打过来的数据,自动的给request对象的相应属性赋值。这个时候,当我们
需要通过do.jsp来拆解request对象中的数据时,
通过String name=request.getParameter("")
,然后需要对name变量进行二次加工。加工完成后,
用response对象进行客户端数据的回送
HttpServletRequest request=new HttpServletRequest();
request.setXXXX();
04.http1.0短连接 和1.1长连接
解析:如果你是tomcat:有一个客户端在0.1s
向服务器发送了100次请求。
1.1:在很短的时间内,多次请求合并成一次。
05.什么情况下表单元素需要给出name属性?
解析:当你非常确信,提交给服务器的信息对
后续数据处理有帮助的时候,请启用name,否则
禁用(如果启用,只会加重服务器和网络带宽的压力)
06.刷新(cache)!=回车(强行服务器请求数据)
07.HttpServletRequest 是request的类型(处理http协议)
ServletRequest: 处理所有协议
********************************************************
2015年11月18日
1.复习上次课内容
2.完成登陆案例书写
3.常见响应状态码解析
4.重定向和转发
1:从请求次数角度来看:重定向2次请求,转发一次请求
2:从URL地址角度来看:重定向是定向后的页面,转发页面地址不变
3. 从位置来看:重定向2次请求都是客户端主动发起的。
5.HttpServletRequest接口和HttpServletResponse接口
6.内置对象session (难点)
*谈谈你自己对session理解
解析: *session代表的是http传输通道中的一次会话
*session是保存在服务器内存中(进程内)
*用来标识用户已经处于登陆状态
*通过JSESSIONID标记服务器上多个会话()
7.cookie (难点)
*程序中:记录浏览历史。影片
*存储位置:在客户端浏览器
*:会话级cookie(浏览器关闭,cookie消失)
*:硬盘级别的cookie(持久化的cookie,电脑关机后,依然存在!)
*cookie需要在client和server端来回传递。来保持状态
*:coolkie不是内置对象
8.内置对象application
9.pageContext request session application作用范围
内置对象 类型
request HttpServletRequest
response HttpServletResponse
out JspWriter
session HttpSession
application ServletContext
config(小)
page
exception(特殊:只能错误页应用,在page指令中添加 isErrorPage="true"方可启用)
pageConext:(竟然能.出来其他所有内置对象)
10.乱码内容补充
解析:可以使用encodeURI(解决)试试gbk
<a id="mya" href="javascript:codeData();">去百度看看</a>
<script type="text/javascript">
//如何注册事件
//取消标签的默认行为
function codeData(){
var dom=document.getElementById('mya');
//编码
var result= encodeURI('中文好');
location.href="<%=path%>/cncode/doLogin.jsp?txtName="+result;
};
</script>
11.引出新闻发布系统
实现登陆,要有表单验证,用户名和密码任何一个为空,表单不能提交
如果用户名或者密码错误,给出提示,成功的话,跳转到admin.jsp
************************************************************
2016年4月13日
1.JDBC的使用
---
2.封装BaseDao
3.分层和JavaBean讲解
************************************************************
2015年11月25日
1.伪mvc的实现
2.servlet讲解
************************************************************
2015年11月29日
1.表单封装工具类
2.Dbutils工具类
****************************************************************
2015年12月2日
01.EL/jstl讲解
02.连接池 /文件上传/CKEditor
03.过滤器
04.新闻发布总结
servlet:
1、就是一个特殊的类:能让client和server进行交流。
运行在server端,Tomcat容器承载。
2、servlet接收客户端请求,如果是添加请求,那么根据
咱们写的表单封装工具,前端请求会自动装配成一个News
对象News news=new News();
dao.addNews(news);
并且调用dao的方法进行数据操作,进而影响数据库。
3、关于生命周期
*init():执行一次
初始化时机:01.如果没有配置,在第一个客户访问时,就会
将硬盘上的一个文件装载到内存(就是初始化)。
02.如果有配置,当tomcat服务启动的时候。
*service()/doXXX
doPost
doGet:调用doPost
doPut()
doDelete()
*destory():销毁关闭tomcat服务器
4、关于接口
HttpServletRequest HttpServletResponse
ServletRequest ServletResponse
ServletConfig:xml文件参数值
ServletContext :上下文
Servlet
走的那一天,组装:车轮
2015年12月6日
分页和监听器
--2016年4月13日08:39
1.page指令
<%@ page language="java" pageEncoding="utf-8" contentType="charset=utf-8"%>
2.关于三种注释
<!--html注释-->
//java注释
<%!--jsp注释--%>
3.状态保持方案:
http协议
通过内置对象:Session(Server内存中)
非内置对象:Cookie(客户端的硬盘上,Cookie有失效时间!)
Cookie cookie=new Cookie("String","String");
cookie.setMaxAge(60*60*24*7);
//如何回送到client(浏览器)
response.addCookies(cookie);
4.提升一下:关于作用域() 至少500元 jsp会向作用域中
你对作用域:(作用范围)
request:
一次请求请求
---->request.setAttribute("uname",Object);
session:
一次会话内数据有小
---->session.setAttribute("uname",Object);
application:
整个网站运行时长
application.setAttribute("uname",Object);
5.重定向和转发
//重定向:
response.sendRedirect("项目名称/路径");
//转发
request.getReqeustDispatcher("不要项目名称").forward(request,response);
3个维度
解析:请求次数:转发一次,重定向2次
地址栏: 转发保留在处理页 重定向 地址栏发生变化
位置探讨:转发服务器内部进行操作,客户端感知不到这个操作 。重定向 客户端主动发起第二次请求
----------------------------------------------------------------------------
1.JDBC
Java连接DB
Sun准一流的公司
一流的公司做接口
二流的公司做服务
三流的公司做产品
Connection
Statement
PreapreStatement
ResultSet
DriverManager.getConnection();
添加年级功能
查询所有年级
登录操作的
--->SQL注入 防止SQL注入 :通过参数化查询
--->存储过程
防止SQL注入的? 参数化查询(PreapreStatement)
Conncetion con;
PreparedStatment ps=con.preparedStatement(sql);//命令对象
String sql="select * from Admin where uid=? and upwd=?";
//得用真实值给参数赋值
ps.setString(1,uname);
ps.setString(2,upwd);
ps.executeQuery();
2.JavaBean
3.分层开发
what is layer? 分层的图书管理系统
解析:分层就是分离关注点,每个类只做一件事情
------三层架构 :只有三层?? 虚指 3层
----->DAO(Data Access Object) 数据访问层 所有的sql出现在该层
----->Service(服务层) 引用DAO的代码
----->UI(User Interface)用户接口才能 引用Service代码
开发模型:
领域驱动
数据库驱动
DBFirst
news 数据库
----->admin 用户名 (id,uid,upwd)
----->Topic 新闻类型表(Tid,Tname)
----->newsdetails 新闻表(nid,ntitle,nauthor,ncreatedate,ncontent,ntid)
----->commnet 评论表(cid,cnewsid,ccontent,cDatetime,cAuthor,cIP)
---封装model (entity) domain
Model:用来在三层中传递数据
--DAO
1.在AdminDAOImpl中重写接口的isLoign()
2.植入了一个BaseDao
---->getConnection()
---->closeAll()
---->executeUpdate()
---->executeQuery()
小小的分层而已
可变参数
say("1","2");
say("1","2","sfasfdsd")
//方法定义
public void say(String str,String pwd,Object... objs){
}
--Service
--UI
--大家吃过饭吗?
美丽的服务员 (小张) 厨师 (小胖) 采购员(小美)
菜就是Model
个人建议:从entity开始搭建
dao
service
ui
4.Servlet
5.news新闻发布系统
登录
查询所有信息
添加新闻