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网页,就好像在处理静态网页一样;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

imx93 系统烧录

1. 硬件环境 iMX 93 evk 开发板 ubuntu 20.04 系统&#xff0c;x86_64 2. 交叉编译可能需要的软件包 配置交叉编译器的前提&#xff0c;我的配置如下&#xff1a; export ARCHarm64 export CROSS_COMPILEaarch64-none-linux-gnu- export PATH$PATH:/opt/work/sdk/arm-gnu-…

盲盒小程序推广与运营策略的挑战

随着盲盒经济的兴起&#xff0c;越来越多的商家开始关注并尝试开发盲盒小程序。然而&#xff0c;在推广和运营盲盒小程序的过程中&#xff0c;我们也不可避免地会遇到一些挑战。下面&#xff0c;我将就用户获取、留存以及活跃度提升等方面&#xff0c;探讨这些挑战及可能的应对…

LayerNorm和RMSNorm实现代码

下面是详细实现的LayerNorm和RMSNorm代码&#xff0c;并附有详细注释。 LayerNorm 实现 LayerNorm的主要思想是对每个样本的每一层进行归一化。具体的实现如下&#xff1a; import torch import torch.nn as nnclass LayerNorm(nn.Module):def __init__(self, d_model, eps1…

动态内存管理<C语言>

导言 在C语言学习阶段&#xff0c;指针、结构体和动态内存管理&#xff0c;是后期学习数据结构的最重要的三大知识模块&#xff0c;也是C语言比较难的知识模块&#xff0c;但是“天下无难事”&#xff0c;只要认真踏实的学习&#xff0c;也能解决&#xff0c;所以下文将介绍动态…

镜舟科技与千丁数科开展战略洽谈,探索智慧空间与数据的深度融合

数据作为当下最重要的生产要素之一&#xff0c;数据分析与智慧空间科技的结合正成为推动企业发展的新引擎 。 5 月 15 日&#xff0c;镜舟科技与千丁数科在北京开展战略合作洽谈。本次会议旨在探索双方在智慧空间科技和数据分析领域的合作潜力&#xff0c;共同推进数字经济的新…

Gartner发布企业人工智能治理指南:以企业通用治理框架为基础,确定针对框架六大支柱的AI特定因素

人工智能&#xff08;AI&#xff09;不仅发展迅速而且可能会放大人类的偏见&#xff0c;如何对其实施有效的治理是数据和分析领导者面临的一个挑战。本文提供了一种全面的方法&#xff0c;可用于扩展企业的治理框架&#xff0c;引入信任、透明度和多样性等AI特定的考虑因素。 主…

3_1 Linux网络基础

3_1 Linux网络基础 文章目录 3_1 Linux网络基础[toc]1. 网络基础1.1 网络的功能&#xff1a;1.2 网络的发展1.3 广域网与局域网1.4 网络中的重要设备1.5 网络中的常用的网络拓扑结构1.6 Tcp/Ip五层参考模型1.7 网络中传输数据的过程1.8 网络设备控制方式1.9 网络的地址1.10 主机…

CMDB是什么实践案例分享

CMDB是什么&实践案例分享 腾讯蓝鲸CMDB通过集中化管理、自动化发现、灵活的模型定义和开放的API&#xff0c;帮助企业高效管理IT资产和配置项&#xff0c;提升运维效率和服务质量&#xff0c;同时支持与其他系统的无缝集成&#xff0c;适用于金融、制造、互联网等多个行业…

WeTrade 在印度尼西亚井里汶成功举办研讨会

端午安康!在这欢乐的假日里&#xff0c;WeTrade和各位投资者分享一则喜事!如果有意参加的&#xff0c;可以联系小编! 5 月底&#xff0c;我们在印度尼西亚井里汶成功举办了一场精彩研讨会&#xff0c;聚集了来自印度尼西亚各地交易社区的100多名交易者。 此次研讨会由经验丰富…

SpringBoot快速部署(2)—不使用docker的常规方法

一、软件下载和部署前准备 安装软件 获取软件安装包 然后上传到服务器的 /tmp 目录下。 软件&#xff1a;nginx、jdk、mysql 下载 X-shell 和 Xftp 注意&#xff1a;这个页面下载安装的才可以免费使用。家庭/学校免费 - NetSarang Website 安装jdk 1.8 tar -zxvf /tmp/jdk-…

徐州服务器租用的费用如何?

对于租用徐州服务器大概需要多少费用呢&#xff1f;服务器租用的价格会根据多种因素而不断变化&#xff0c;其中包括服务器的硬件配置、租用所在地区的数据中心和IDC服务商所提供的服务器等级&#xff0c;所以服务器租用的费用是不固定的&#xff0c;那么小万来详细谈一谈这个问…

服务器数据恢复—热备盘未完全启用导致raid5阵列崩溃的数据恢复案例

服务器存储故障&#xff1a; 一台EMC某型号存储由于存储中raid5阵列出现故障导致服务器崩溃&#xff0c;由于数据涉密&#xff0c;需要工程师到现场恢复数据。 服务器数据恢复工程师到现场后对数据进行检测&#xff0c;经过检测发现服务器崩溃是由于raid中某些硬盘掉线所导致。…

云端之上的边缘:解读云计算与边缘计算的战略融合

目录 一、引言 二、云计算的详细解释 云计算的概念 云计算的特点 一、引言 二、虚拟化技术 &#xff08;一&#xff09;虚拟化技术的原理 &#xff08;二&#xff09;虚拟化技术的优势 三、动态可扩展 &#xff08;一&#xff09;动态可扩展的原理 &#xff08;二&a…

Web前端开发学习资料:深度探索与开发实践

Web前端开发学习资料&#xff1a;深度探索与开发实践 Web前端开发作为互联网时代的核心技能之一&#xff0c;日益受到广泛关注。本文将从四个方面、五个方面、六个方面和七个方面&#xff0c;对Web前端开发的学习资料进行详细解析&#xff0c;旨在帮助初学者和进阶者更好地掌握…

Web前端开发交流群:深度探索、实践与创新的集结地

Web前端开发交流群&#xff1a;深度探索、实践与创新的集结地 在数字时代的浪潮中&#xff0c;Web前端开发扮演着举足轻重的角色。为了促进前端技术的交流与发展&#xff0c;Web前端开发交流群应运而生&#xff0c;成为众多开发者学习、分享、创新的集结地。本文将从四个方面、…

使用 actor-critic 方法来控制 CartPole-V0 游戏

CartPole 介绍 在一个光滑的轨道上有个推车&#xff0c;杆子垂直微置在推车上&#xff0c;随时有倒的风险。系统每次对推车施加向左或者向右的力&#xff0c;但我们的目标是让杆子保持直立。杆子保持直立的每个时间单位都会获得 1 的奖励。但是当杆子与垂直方向成 15 度以上的…

C#自定义类的属性名并且通过反射获取属性名

一般情况下我们的返回实体都为英文命名&#xff0c;某些时候我们想自定义返回的属性名称。在C#中&#xff0c;不能直接通过内置的反射API来获取属性的“自定义名字”&#xff0c;因为属性本身在元数据中并没有这样的概念。但是&#xff0c;可以使用自定义属性&#xff08;Attri…

qt Json操作

说明 该例子说明了字符串转Json对象&#xff0c;再从Json对象转字符串 代码 #include <QCoreApplication> #include <QTextCodec> #include <iostream> #include <QDebug> #include <QJsonDocument> #include <QJsonObject>using names…

安装torch报cannot uninstall TBB,its a distutils installed project

pycahrm的设置-解释器安装torch&#xff0c;去anaconda文件夹的Lib下site-packages里找&#xff0c;TBB名称的egg.info的文件删掉即可&#xff0c;然后再次安装torch成功

SQLynx荣登Web SQL工具榜首,中国软件快速崛起

近年来&#xff0c;随着互联网技术的迅猛发展&#xff0c;数据库管理工具也在不断进步和创新。 作为一种便捷且高效的数据库管理方式&#xff0c;Web SQL IDE工具逐渐成为开发者和数据库管理员的首选。在众多Web SQL工具中&#xff0c;SQLynx凭借其卓越的功能和用户体验&#x…