jstl和ajax

HttpServletRequest对象:
接收请求的 : get , post请求
get: ? & 200 不安全,
post: 放在浏览器的 请求头中 Network 200 OK 404

方法: request.getParameter(“form表单中的 name 属性值”);
request.setCharacterEncoding(“UTF-8”);
request.getRequestDispatcher(“目标地址”).forward(request,response);//转发
request.getSession();------>session
request.setAttribute(“名”,值);
request.getAttribute(“名”);

HttpServletResponse对象:
response.getWriter().write("");
response.setContentType(“text/html;charset=UTF-8”);
response.sendRedirect(“目标地址”); //重定向

HttpSession对象:
session.setAttribute(“域对象的名”,值);
session.getAttribute(“域对象的名”);

ServletContext:servlet上下文;
sc.setAttribute(“域对象的名”,值);
sc.getAttribute(“域对象的名”);
sc.getInitParameter("");

web.xml

ServletConfig:
getInitParameter();
config.getServletContext();
config.getServletName();

jsp: java server page , java服务器页面
属于 动态 页面 运行在 tomcat服务器上 ,编译后 是一个 servlet类

指令:
1)page 当前页面配置信息
2)include 包含其他 页面
3)taglib 引入 第三方 类库

<%@ page | include taglib >

表达式 , 声明 ,
<%= 输出的结果 >
<%
User user = new User();
%>


1)jsp的 9大内置对象:
request ------ > 对象 servlet中的 request对象
session -------> 对象servlet中的 session对象
response -------> 对象 servlet中的 response对象
applicationContext —> 对象servlet中的 servletContext

pageContext 代表当前页面
page 当前的信息
out 用于输出
exception 异常
config 当前页面的配置信息 servletConfig

====================================================
2)jstl:
java standard tag library
java 标准标签库
用于 jsp ,是 jsp 核心 标签库 ,第三方的

1)导入jstl的 jar包
在这里插入图片描述
2)在 jsp页面 导入 路径
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
3)使用 jstl的 标签 完成数据的遍历

3)ajax
ajax: 不是一个 新的技术,最早 是 google 谷歌 提出的
异步的 局部刷新技术
Asynchronous java script and xml
js and xml

提高用户体验度;

异步:
自己 干 自己的 相互 不影响

同步:
同步锁
他们两个 要保持同一种 状态

1)需要创建 XMLHttpRequest
2)建立连接
3)发送请求

4)判断 当前 响应的状态
分 5个状态 我们只需要 第四个

if(xml.status ==200 && xml.readyState == 4){

var a = xmlHttp.responseText;
alert(a);
}

基于jquery的 ajax:
$(function() {
$(“input[name=‘username’]”).blur(function() {
var name = $(“input[name=‘username’]”).val();
$.ajax({
url : “userServlet”,
type : “GET”,
async : true,
contentType:“application/json”,
data : {uname : name},
success : function(data) {
alert(data);
if (data == “success”) {
$("#sp").html(“√”);
} else {
$("#sp").html(“×”);
}
}
})

	})

})

jstl:
<%@page import="org.apache.jasper.tagplugins.jstl.core.ForEach"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%

    String path = request.getContextPath();
    String basepath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basepath%>">
<meta charset="UTF-8">
<title>主页</title>
</head>
<body>
    <c:forEach items="${goods }" var="good">
         ${good }<br/>
    </c:forEach>
</body>
</html>

基于js的ajax:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <form action="userServlet" method="get">
       用户名:<input type="text" onblur="checkName(this.value)" name="uname"><span id="sp"></span><br/>
       密 &nbsp;码:<input type="password" name="pwd"><br/>
       <input type="submit" value="登录">
   </form>
</body>
<script type="text/javascript">
   
    function checkName(a){
	 //需要 使用 ajax完成 局部刷新 技术 , 首先必须 创建 XMLHttpRequest对象
	             var xmlhttp = new XMLHttpRequest();
	           //建立连接
	             xmlhttp.open("GET","userServlet?uname="+a,true);// 与 ajax 引擎  建立 连接
	           //发送请求
	             xmlhttp.send();  //发送
	           //获取响应
	             xmlhttp.onreadystatechange = function(){
	            	 if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
	            		 var b = xmlhttp.responseText;//这就是我 响应的结果
	            		 if(b == "success"){
	            			 document.getElementById("sp").innerHTML = "<span style='color: green'>√</span>";
	            		 }else{
	            			 document.getElementById("sp").innerHTML = "<span style='color: red'>×</span>";
	            		 }
	            		 
	            		 
	            	 }
					
				}
}

</script>

</html>
基于jquery的 ajax:
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basepath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basepath%>">
<meta charset="UTF-8">
<title>登录页面</title>
</head>
<body>
    <form action="userServlet" method="get">
       用户名:<input type="text" name="uname"><span id="sp"></span><br/>
       密 &nbsp;码:<input type="password" name="pwd"><br/>
       <input type="submit" value="登录">
   </form>
</body>
<script type="text/javascript" src="js/jquery-1.11.3.js"></script>
<script type="text/javascript">
    //页面 加载函数
    $(function(){
    	$("input[name='uname']").blur(function(){
    		var name = $("input[name='uname']").val();
			$.ajax({
				url :"userServlet",
				type : "GET",
				async : true,
				contentType :"application/json",
				data : {uname : name},
				success :function(data) {
					if (data == "success") {
						$("#sp").html("<span style='color:green'>√</span>");
					}else{
						$("#sp").html("<span style='color:red'>×</span>");
					}
					
				}
				
			})
			
			
		})
		
	})



</script>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>动漫搜索</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> var xmlhttp; function loadXMLDoc(url,cfun) { // alert("hadhfaf"); xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=cfun; xmlhttp.open("GET",url,true); xmlhttp.send(); } function myfunction(id,times) { //alert("123"); loadXMLDoc("open.jsp?id="+id+"&times="+times+"&t="+Math.random(),function() { //alert(xmlhttp.status); if(xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById(id).innerHTML=xmlhttp.responseText; } }); } </script> <% //currentPage当前显示页数 if (request.getParameter("currentPage") == null||request.getParameter("currentPage").equals("")) { pageContext.setAttribute("currentPage", new Integer(0)); } else { pageContext.setAttribute("currentPage", request .getParameter("currentPage")); } %> <sql:query var="rs" dataSource="jdbc/mysql"> select* from anime </sql:query> <!-- 得到所有记录数 --> <c:set var="resultNum"> <jsp:getProperty name="rs" property="rowCount" /> </c:set> <!-- 每页显示记录数 --> <c:set var="PerPageNum" value="3" /> </head> <style type="text/css"> body{background-color:} </style> <body> <% int perPageNum = Integer.parseInt((String) pageContext .getAttribute("PerPageNum")); int resultNum = Integer.parseInt((String) pageContext .getAttribute("resultNum")); int pageNum; //如果所有记录数除每页显示记录数没有余数-1 if((int)resultNum%perPageNum==0) pageNum = (int)(resultNum / perPageNum-1); else pageNum = (int)(resultNum / perPageNum); pageContext.setAttribute("pageNum", pageNum); %> <div style="border:1px solid #cccccc; width:1100px;margin:100px 0 0 90px"> <table style=" width:1100px;"> <tr> <td>序号</td> <td>热搜动漫</td> <td>动漫简介</td> <td>更新集数</td> <td>搜索指数</td> <td>动漫详情</td> </tr> <c:if test="${currentPage lt 0 }"><!-- 当前显示页小于0 --> <c:set var="currentPage" value="0"></c:set> </c:if> <c:if test="${currentPage gt pageNum}"><!-- 当前显示页大于总页数 --> <c:set var="currentPage" value="${pageNum }"></c:set> </c:if> <c:set var="currentPage" value="${currentPage}" scope="session" /> <!-- 循环查找记录 --> <c:forEach var="row" items="${rs.rows}" begin="${currentPage*PerPageNum}" end="${PerPageNum+currentPage*PerPageNum-1}" > <tr> <td> ${row.id }</td> <td> <img src="image/${row.image}" width="50" height="50"/></td> <td style="width:600"> ${row.introduce}</td> <td> ${row.blues} </td> <td> ${row.times }</td> <c:set var="times" value="${row.times }" scope="session" /> <td> <input type="button" value="展开" onclick="myfunction(${row.id },${row.times })"/> </td> </tr> <tr> <td colspan=6 id="${row.id}"></td> </tr> </c:forEach> </table> <div style="margin:0px 0px 0px 800px"> 总共有${pageNum+1}页-第${currentPage+1}页-<a href="index.jsp?currentPage=${currentPage-1}">上一页</a> - <a href="index.jsp?currentPage=${currentPage+1}">下一页</a> </div> </div> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值