JavaWeb期末知识点复习

th表头(会居中加粗而已,别的和td一样 ) tr表格行 td单元格
<caption>标题</...>
<table>
    <tr>行
        <th>  </th>
        <td align="center" valign="middle">每列</td>
        <td>
    <tr>
<table>
<%@page language="java" import="package" contentPage="text/html;charset=utf-8" pageEncoding="utf-8">
<!DOCTYPE html>
<html>
    <head>
        <meta = "utf-8">
        <title></title>
    <head>
    <body>
    <bod y>
<html>
<textarea name="cv" rows="3" cols="40">限100字以内</textarea>
<input type="text/password/radio/submit/reset/hidden ">
<input type="checkbox" name="hobby" value="唱歌">唱歌
<input type="radio" value="男" name="sex" checked默认>男<input type="radio" value="女" name="sex">女<br> name相同的单选框只能选一个
<br>  <p></p>  <h1></h1>  <center></..> 
<ul> <li> </li></ul>
<ol> <li></li></ol>
<a href="img path">aslkfld</a>
<img src="图片路径" title="提示信息文字" />
<select name=""><option></option></select>
<frameset cols="40%,60%"> <frame src="top.html" name="one"> <frame src="bottom.html" name="two"> </frameset>
CSS引用:
1.写在标签内
2.head标签内写<style type="text/css">,标签/id( #id{...})/class选择器
3.链入外部样式表文件
JS引用:
1.写在标签内:οnclick="alert("")"
2.head标签内写<script type="text/javascript">
3.var 整形 浮点型 字符型 布尔型 undefined null, 区分大小写
4.=== 和 !== ,根据值和 类型判断
5.function name(){}
6.js的事件驱动特点,事件源、事件、事件处理程序
7.BOM:浏览器对象----window--顶级对象
   DOM:文件对象----document---一个页面就是一个文件,每个标签是元素,
它具有解释性、基于对象、事件驱动、安全性、跨平台等特点
输出:document.write()
一.JSP语法
1.page指令:导入本页面用的类,<%@page language="" import="类包" pageEncoding="utf-8" contentType= "text/html(MIME); charset=utf-8" isErrorPage=""%>  一般会使用 多个 page 指令来导入多个包
   include指令:把别的页面展示到本页面/文件
2.<% java代码 %>
3.<%=java表达式%>:输出
4.<!--注释-->
5.JSP动作标识:
<jsp:include page="URL" flush="t/f"/> 刷新缓存
<jsp:param name="" value=""> 向目标页面传参,子动作
<jsp:forward page="URL"/> 跳转
6.< %! 定义全局变量/方法%>
二、JSP内置对象
1.4个 属性范围
pagecontext:只属于一个页面,跳转后丢失
request:跳转后保存,地址栏不能变--服务器跳转-------------------------forward不变,redirect变
session:无敌了孩子,地址栏变不变都能获得属性,直到关闭浏览器
application:保存在服务器, 用户共享,关闭服务器
2.4个属性范围通用的属性操作:set/get/removeAttribute()
3.n个对象:
request:
request.getParamter() 拿到传到这个页面的参数 通用
get:追加到网址后//<jsp:param>//表单
post:表单
request.setAttribute(string name, Object obj)
...get..(string name):返回值是obj 要强转,string a = (string)request.getA("")    int a = Interger.parseInt()
request.getcookies().getname("").getvalue()s
cookie保存中文encode(),读取中文decode()
response:
response.sendRedirect(string path)  重定向
response.setHeader("refresh","n秒", url="");   几秒后刷新界面
response.setBufferSize(100)
session:
get/set/removeAttribute()
.invalidate()   注销session
.setMaxInactiveInterval(n)
application:
.getInitParameter(name):获取程序初始化参数
.getInitParameters()
out:
out.print()
out.println()
page(this):能获得其他内置对象
config:服务器配置
exception:
页面发现异常后 传送到指定的错误处理页面中--iserrorpage=true
.getmessage()
4.解决中文乱码: xc
post:<%request.setCharaterEncoding("UTF-8");%>
其他:在接受name参数页面-->stirng a = new string(request.getp("name").getBytes("ISO-8859-1"),"UTF-8")
三、JDBC
JDBC本质上是一系列的应用程序接口(API) 通过JAVA语言访问任何结构化数据库 通过JDBC API写出的程序,能够将SQL语句发送到相应的任何一种数据库
注册驱动--连接--操作对象--执行sql--处理结果--关闭资源
1.url--jdbc:mysql://localhost:3306/user
2.获取Connection对象:
Connection c = DriverManager.getConnection(url,username,password);
3.statement接口:sql,获取结果。
4.preparedStatement接口:继承上面的,可以在sql中使用 占位符"?"代替参数,然后使用 setxxx方法对其赋值。避免sql注入。这个更牛逼反正。
5.resultset接口:封装了查询结果集,游标,next(),first(),previous(),last(), getxxx()方法
四、增删改查
从连接数据库到关闭资源,所有代码都在try里包含。
1.增:insert into table values();
<%request.setCharaterEncoding(UTF-8);%>
<jsp:useBean id="a" class=""></jsp:useBean>    //创建一个class的对象a
<jsp:setProperty property="*" name="a">        //将a中属性名和表单name同名的属性,用表单提交的值赋值给对象a
try{
Class
Connection c = DriverManager.getConnection(url,username,password);
string sql="insert????";
PreparedStatement ps = c.preparedStatement(sql);
ps.set...(1,a.value);        //占位符?的下标从1开始
int row = ps.execteUpdate();
ps.close();
c.close();
}catch(Exception e){
     e.printStackTrace();
}
2.查:ResultSet移动光标位置 把rs中的值依次加到List里,把list加到request属性中
c
Statement s = c.createStatement();
PS ps = c.pS(sql);
string sql = "select..";
RS rs = ps.executeQuery();
ResultSet rs = s.executeQuery(sql);   //*
List<class> list = new ArrayList<class>();
while(rs.next()) {                //rs中光标默认在第一行数据之前,所以在循环之前要先向后移动光标即rs.next
    实例化对象 class a = new class();
    set方法给对象赋值 a.setxx(rs.getxx)
    list.add(a);
}
request.setattribute(list);
rs.close();
s.close();
c.close();
请求转发到显示界面后:
request.getattri("list")
3.改:update table set a = b
表单界面:把id和修改内容提交到地址
<form action="UpdateSerlet" method="post">
    <input type="hidden" name="id" value="<%=a.getid()%>>
    <input 输入修改的内容>
    <input type="submit">
请求处理界面:
int id = Interger.valueof(request.getparameter("id"));
try{
    Class.forName();
    Connection c = DriverManager.getConnection(url,un,pw);
    PS ps = c.pS(sql);
    ps.setxxx;
    ps.executeUpdate();
    close;
}
4.删:delete from table where
表单界面:把id提交到地址
超链接形式:<a href="xxx?id=<%=xxx.getid()%>">
请求处理界面:
接参:Integer.valueOf(request.getp("id"));
try{
    连接;
    PS ps = c.pS(sql);
    ps.setxx;
    ps.executeUpdate();
}
注:S与PS的区别
创建时:Statement s = c.createStatement();----PS ps = c.pS (sql) ;
执行查询语句:RS rs = s.executeQuery(sql);----都没sql。        使用查询语句时返回RS对象
执行更新语句:int row = s.executeUpdate(sql);----都没sql
五、MVC设计模式----- 以servlet为主体
强制性的使应用程序的输入、处理和输出分开。
M:模型层,处理业务操作。Javabean实现。
V:视图层,用户交互界面,JSP实现。
C:控制层,接收用户的请求,判断合法性,根据请求类型调用相应JavaBean,并将结果交给JSP显示。Servlet实现。
六、分页查询:
即分页显示查询的结果
ResultSet的游标实现分页
1.计算总行数=最后一行的行号
ps = c.pS(sql,RS.TYPE_SCROLL_INSENSITIVE,RS.CONCUR_READ_ONLY);
rs.last();
int row = rs.getRow();
2.计算页数=(总行数%页大小==0)?总行数/页大小 :总行数/页大小+1
3.传递页码获取页码:
url?page=1;
request.getP("page");
4.读取第n页数据:
rs.absolute(int row) //指针定位到指定行
row = (n-1)*页大小+1
5.实现分页导航:
if不是第一页时显示第一页和上一页,if不是最后一页时显示下一页和最后一页。
思路总结:
连接数据库后,查询所有数据,获得总行数。
根据页大小算出总页数,根据当前页数算出这页的行号。
七、JavaBean
1.纯jsp开发把所有代码都写道jsp页面中,维护低,出现重复代码,无法重用。
2.jsp+JavaBean,代码分离,可调用JavaBean组件。
3.要求:
所有类放在 一个包中
类public
属性private
setter,getter
至少有一个无参构造
4.使用JB
传统方式:<%@page import=""%>---<%创建对象,setget%>
动作标签:<jsp:useBean id="实例化的对象名" scope="对象保存范围" class= "对象对应的包.类"/>        removeAttribute(JB)删除JB
                 <jsp:setProperty name="对象名" property="属性名" value="属性值"/>
                 <jsp:getProperty name="。。" property="。。"/>
5.JB处理表单
动作标签:在接收参数的界面:
<jsp:setP name="" property="*"/> (表单参数名和所有属性名相同)
<jsp:setP name="" property="属性名" param="表单参数名"/> (不同)
八、DAO
增删改查接口。
九、Servlet
服务器端程序,多线程,java开发的。
客户端发出请求,服务器转发给servlet,执行后将结果返回服务器,再发回客户端。
开发步骤:
1.类实现Servlet接口,重写所有抽象方法。service方法
2.配置访问路径:
web.xml:Servlet-name唯一,servlet-class是类的路径
注解配置:
类上面写: @WebServlet("/demo1")
3.生命周期:加载程序--初始化--服务--销毁--卸载
生命周期方法:init,service,destory
WEB容器负责加载Servlet,容器启动或第一次使用这个Serlet时,容器会创建Servlet实例。
实例化后,容器调用init方法初始化对象,例如建立数据库连接等。 
service方法(常用doGet doPost)处理请求。
4.Servlet体系结构
接口Servlet:定义了Servlet规范;
抽象类GenericServlet:只保留service方法为抽象方法,其他方法空实现;
抽象类HttpServlet:封装了Http协议,重写了service方法,根据请求方式调用相应doxxx方法。
5.自定义Servlet类,一般extends HttpServlet,然后重写doxxx()方法
6.config.getInitParameter()  
HttpSession session = request.getSession();    //servlet获取session
ServletContext app = super. getSerletContext();   //application
7.Servlet跳转:
服务器跳:RequestDispatcher rd = request.getRequestDispatcher("path");   rd.forward( request,response);
客户端跳:response.sendRedirect("");
8.输出:
response.setcharacterEncoding("utf-8")
PrintWriter out = response.getWriter();
登录注册验证功能+MVC代码
简答题:
1.JSP处理过程:     
客户浏览器给服务器发送一个HTTP请求;
Web服务器识别出这是一个JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或.jsp文件来完成;
JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码;
JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎;
Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行的过程中,servlet产生HTML格式的输出并将其内嵌与HTTP的response上交给Web服务器;
Web服务器以静态HTML网页的形式将HTTP的response返回给浏览器;
最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样;
  • 18
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值