• java web笔记


    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新闻发布系统
    登录
    查询所有信息
    添加新闻

  • 相关阅读:
    Oracle数据类型
    Windows10安装node.js,vue.js以及创建第一个vue.js项目
    Redis Desktop Manager安装
    VMware安装Linux系统
    前端入门学习路线
    架构
    HTML
    Oracle修改表类型方法
    Python学习
    Python(字符串和编码)
  • 原文地址:https://www.cnblogs.com/go4mi/p/5545225.html
Copyright © 2020-2023  润新知