我不管,我就要灌水,第一节课总是水。
首先,jsp 的特点,不然你凭什么不说你是html呢?
先给出我的第一个JSP程序 点击打开链接
一,JSP3个标签
<jsp:include page="" /> 这个标签代表包含的意思,类似.Net里面的局部视图,也就是在这里引入一个html页面,最后形成一个完整的页面
<jsp:forward page="" /> 服务器端跳转,客户端浏览器地址不改变
<jsp:param name="" value="" />前面2个标签引入页面或者跳转页面可以通过包含这个标签来传递参数
传递参数这个用法目前还不知道适合干什么,所以页面传递参数我选择form表单。
二,JSP页面的基本语法,也就是在html页面使用java语句
①注释
可以这样 <%-- 注释 --%>
也可以
<%
// 注释
/* 注释 */
%>
②使用变量值
<%=username %>
③使用java程序段
<%
语句;
%>
④声明全局变量
<%! int i; %>
这些东西在以前应该学到过,至少是类似的东西,简而言之。属于java的应该被包含在<% %>里面,唯一需要注意的就是那个声明全局变量。
三,JSP的内置对象
①request
String username=request.getParameter("username");//获取一个值
String []usernames=request.getParameterValues("usernames");//获取多个值,比如checkbox多选
②response
response.setHeader("refresh","5");//每5s刷新一次
response.setHeader("refresh","5;url=index.jsp");//过5s跳转,这个url=不要也可以,数字和地址用分号隔开就好了
response.sendRedirect("index.jsp");//页面跳转
response.sendRedirect("index.jsp?usr=ywf");//跳转还传递参数,参数用request.getParameter()接收
③session 多个页面共享数据,关闭浏览器再打开就可以清除session对象
session.setAttribute("username",usr);//设置session对象,这样解释可能更熟悉一点Session["username"]=usr;
session.getAttribute("username");//获取session对象
session.invalidate();//注销session对象
④application 多个用户共享数据,可以这么说,打开多个浏览器是数据同步,重启项目可以清楚这个对象,比如重启tomcat,用法同上不多BB
四,本节重点
① response.sendRedirect("")和<jsp:forward page="">的区别
用response跳转页面速度慢
用response跳转页面浏览器地址改变,是客户端跳转
用response跳转页面不能使用request.getParameter("")接收参数
举个例子:
login.jsp //form表单传递username参数,提交到handle页面处理
handle.jsp //处理接收到的参数,如果符合要求使用<jsp:forward page="user.jsp">跳转到user页面,这时浏览器地址不改变
user.jsp //使用request.getParameter("username")接收参数,能正常得到结果,相反前面使用response跳转就得不到结果
②java中equals和==的区别
由于暂时JSP页面用不到数据库,应该比较的时候像这样写,如果psd为空的话psd.equals("123")这样写会报空指针异常的错误
if("123".equals(psd))
{
}
== 比较的是地址,所以这里不能用==
③顺便吐槽一下,应该是session.getAttribute()这个图里面的单词是错的。
这次无关J2EE 的收获:
360浏览器自动填充表单的解决方法,具体解决方法可以自行百度,我的解决方法是(直接给代码更清晰)这叫假装我不是表单系列
<input type="text" name="username" />
<input type="text" name="password" οnfοcus="this.type='password'" />