我会在这个系列里逐步完善系统,从无到有建立知识体系
javaweb补充知识文档:
setAttribute:
javaweb笔记(一)
1
CSS、HTML、JSP之间关系:
CSS如同人的服饰,他来装饰HTML代码,只是一个样式的作用
HTML是一个人,任凭CSS来打扮
JSP是可以在html中写代码的一、Css与html不同
CSS语法与HTML语法完全不同
1、HTML里代码是功能标签,如DIV、SPAN、A链接、em标签、I斜体标签、u下划线等
html代码语法范例:
<div>内容</div>
<span>内容</span>
2、CSS样式代码语法
div{样式单词:值}
如div{font-size:12px;} 设置div对象内字体大小为12px
从以上2点可以看出HTML与CSS样式语法完全不同。CSS控制了html标签对象的样式表现。而HTML内标签表现样式(美化)被CSS控制。
二、Css与html相同
CSS与HTML相同之处在于,两个共同作用让网页实现需要的布局样式。
2
.web与服务器之间的关系
1、WEB :表示用户可以浏览的网页(HTML,CSS,JS)
2、服务器
1、硬件 与 软件
硬件范畴:一台主机
软件范畴:一个能够接收请求并给出响应的程序
2、作用
1、存储WEB上的信息(网页,图片,音频,视频)
2、能够处理用户的请求(request),并给出响应(response)
3、执行服务器端的程序:如查询数据库
- getparameter()与getattribute()、setattribute之间的关系:
3
web之间的转发与链接关系:
请求转发 :
定义:请求转发允许把请求转发给同一个应用程序 中的其他WEB组件。
实现:Servlet类使用javax.servlet.RequestDispathcer.forward()方法来转发它所收到的HTTP请求。转发目标组件将处理该请求并生成响应结果,或者将请求继续转发到另一个组件。最初请求的ServletRequest和ServletResponse对象被传递给转发目标组件,这是的目标组件可以访问整个请求上下文。
总结:转发的源组件和目标组件在request范围内共享数据,及他们拥有同一个request对象啊。请求转发只能转发给同一个WEB应用中的组件。
RequestDispatcher rd = request.getRequestDispatcher("hello.jsp");
rd.forward(request,response);
<jsp:forward page="hello.jsp">
链接web:
即页面跳转
getParameter 是用来接受用post个get方法传递过来的参数的.
getAttribute 必须先setAttribute.
(1)request.getParameter() 取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2)request.getParameter() 方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
request.setAttribute() 和 getAttribute() 方法传递的数据只会存在于Web容器内部
还有一点就是,HttpServletRequest 类有 setAttribute() 方法,而没有setParameter() 方法。
拿一个例子来说一下吧,假如两个WEB页面间为链接关系时,就是说要从1.jsp链接到2.jsp时,被链接的是2.jsp可以通过getParameter()方法来获得请求参数.
假如1.jsp里有
Html代码 收藏代码
<form name="form1" method="post" action="2.jsp">
请输入用户姓名:<input type="text" name="username">
<input type="submit" name="Submit" value="提交">
</form>
的话在2.jsp中通过request.getParameter("username")方法来获得请求参数username:
Html代码 收藏代码
< % String username=request.getParameter("username"); %>
但是如果两个WEB间为转发关系时,转发目的WEB可以用getAttribute()方法来和转发源WEB共享request范围内的数据,也还是说一个例子吧。
有1.jsp和2.jsp
1.jsp希望向2.jsp传递当前的用户名字,如何传递这一数据呢?先在1.jsp中调用如下setAttribute()方法:
Html代码 收藏代码
<%
String username=request.getParameter("username");
request.setAttribute("username",username);
%>
<jsp:forward page="2.jsp" />
在2.jsp中通过getAttribute()方法获得用户名字:
Html代码 收藏代码
<% String username=(String)request.getAttribute("username"); %>
(1)HttpServletRequest 类有setAttribute()方法,而没有setParameter()方法
(2) 当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,
(3) 当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。
4
setAttribute() 方法添加指定的属性,并为其赋指定的值。
如果这个指定的属性已存在,则仅设置/更改值
5
HTML中td th 与tr之间的关系
由此可见,<th>和<td>标签都是用于表格单元格显示的。不同的是<th>在单元格中加粗显示。
<th>:定义表格内的表头单元格。此th元素内部的文本通常会呈现为粗体。
Tr为每一列
<td colspan="3">为把三个列合并为一个单元格
5
- GB2312、GBK和UTF-8都是一种字符编码,GB2312和GBK主要用于汉字的编码,而UTF-8是全世界通用的
- 在a包中的A类,希望调用b包中的B类,就需要导入b包。
例如:import java.awt.*;
就是导入了java.awt包中所有的类。 - Content-Type:用于定义用户的浏览器或相关设备如何显示将要加载的数据,或者如何处理将要加载的数据。
text/html的意思是将文件的content-type设置为text/html的形式,浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。
text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理
HTML <form> 标签的 action 属性:当提交表单时向何处发往数据
实例
下面的表单拥有两个输入字段以及一个提交按钮,当提交表单时,表单数据会提交到名为 "form_action.asp" 的页面:
<form action="form_action.asp" method="get">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
HTML <form> 标签的 method、 属性
又分为 get与post方法都是传送数据,两者使用在不同的环境下:
实例
在下面的例子中,表单数据将通过 method 属性附加到 URL 上:
<form action="form_action.asp" method="get">
<p>First name: <input type="text" name="fname" /></p>
<p>Last name: <input type="text" name="lname" /></p>
<input type="submit" value="Submit" />
</form>
POST 还是 GET?
如果表单处理服务器既支持 POST 方法又支持 GET 方法,那么你该选择哪种方法呢?下面是有关这方面的一些规律:
- 如果希望获得最佳表单传输性能,可以采用 GET 方法发送只有少数简短字段的小表单。
- 一些服务器操作系统在处理可以立即传递给应用程序的命令行参数时,会限制其数目和长度,在这种情况下,对那些有许多字段或是很长的文本域的表单来说,就应该采用 POST 方法来发送。
- 如果你在编写服务器端的表单处理应用程序方面经验不足,应该选择 GET 方法。如果采用 POST 方法,就要在读取和解码方法做些额外的工作,也许这并不很难,但是也许你不太愿意去处理这些问题。
- 如果安全性是个问题,那么我们建议选用 POST 方法。GET 方法将表单参数直接放在应用程序的 URL 中,这样网络窥探者可以很轻松地捕获它们,还可以从服务器的日志文件中进行摘录。如果参数中包含了信用卡帐号这样的敏感信息,就会在不知不觉中危及用户的安全。而 POST 应用程序就没有安全方面的漏洞,在将参数作为单独的事务传输给服务器进行处理时,至少还可以采用加密的方法。
- 如果想在表单之外调用服务器端的应用程序,而且包括向其传递参数的过程,就要采用 GET 方法,因为该方法允许把表单这样的参数包括进来作为 URL 的一部分。而另一方面,使用 POST 样式的应用程序却希望在 URL 后还能有一个来自浏览器额外的传输过程,其中传输的内容不能作为传统 <a> 标签的内容。
我的总结:get短小精悍不带套,省事
Post繁文缛节一大堆,安全
Css框架:Blueprint是比较早的,基于静态css的框架
但是现在有两个主要的动态css语言,LESS和SASS,给css提供了变量,mixin,运算符等功能,让写出模块化的css框架成为可能