IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> El表达式与JSTl实现登录 AJAX搜索提示的实现 -> 正文阅读

[JavaScript知识库]El表达式与JSTl实现登录 AJAX搜索提示的实现

1.同界面登录的实现

所设计的架包下载

文件?json的使用与架包下载?密码:40tf

JSTL架包下载

文件密码:6dva

1.第一步引入jstl?

prefix 命名 可随意
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

2.通过jstl进行判断 保存的session是否存在? action可加上绝对路径${pageContext.request.contextPath}

不存在时 显示表单登录	
 <c:if test="${empty user }">
				
				<form action="LongIndex.do"  method="post">
				<table style="margin-left:5px;"><tr><td></td></tr>
					<tr><td>登陆名:<input name="user" style=" width:110px;"/></tr>
					<tr><td>密码 :<input type="password" name='password' style=" width:110px;"/></td></tr>
                             登录按钮图片
					<tr><td><input type="image" src="image/button01.gif" />

					<img src="image/button02.gif" />
					</td></tr></table>
					</form>
				</c:if>
          存在就显示当前用户 
				<c:if test="${not empty user }">
				
					<span  style="margin-left:20px">
					<a href="#" style=" font-weight:bold; color: order;font-size: 14px">
					当前登录用户:${user.userName }</a></span>
				
				
				
				</c:if> 

3.Servlet 界面进行判断 是否登录成功

package com.baidu.servle;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.baidu.bzi.UserBzi;
import com.baidu.bzi.impl.UserBziimpl;
import com.baidu.entity.User;

/**
 * Servlet implementation class LongIndex
 */
配置的地址
@WebServlet("/LongIndex.do")
public class LongIndex extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//调用dopost方法
	doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/http;charset=utf-8");
		
		String user=request.getParameter("user");
		String password=request.getParameter("password");
		 UserBzi us=new UserBziimpl();
		User exeuserAll = us.exeuserAll(new User(user, password));
		//获取项目的绝对路径
		String path=this.getServletConfig().getServletContext().getRealPath("/");
		
		if(exeuserAll!=null) {
//             保存User实体 用户登录实体
	    request.getSession().setAttribute("user",exeuserAll);
	    response.sendRedirect("index.jsp");
		}else {
			response.sendRedirect("index.jsp");
			

		}

	}

}

2.Ajax实现搜索提示框

?

1.AJAX是什么?
?? ?AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。

2.异步交互和同步交互
? ? 同步:
?? ?(1)发一个请求,就要等待服务器的响应结束,然后才能发第二个请求!中间这段时间就是一个字“卡”
?? ?(2)刷新的是这个页面

? ?异步:
?? ?(1)发一个请求后,无需等待服务器的响应,然后就可以发第二个请求!
?? ?(2)可以使用js接口服务器的响应,然后使用js来局部刷新

? ? 【示例】使用JS点击按钮触发事件,设置内容改变标签内容(局部刷新)


1.布局搜索界面

实现效果演示

?

css样式
<script type="text/javascript" src="js/jquery-3.6.0.js"></script>
		<link rel="stylesheet" type="text/css" href="css/admin.css" />
		<style type="text/css">
		a{
		text-decoration:none;
		}
		#tsDiv{
		background-color: #cecece;
		width:168px ; 
		position:absolute; 
		z-index: 33 ; 
		margin-left:40px ;
		height:140px;
		/* 超过高度自动滚动条  */
		overflow: auto;
		}
		#tsDiv>div{
		height: 23px;
		line-height: 23px;
		cursor:pointer;
		}
		#tsDiv>div:hover {
	  color: white;
	  background: pink;
}
		</style>




		html代码	


				<div style="height: 35px;width: 947px; text-align:left; line-height: 35px ;margin-left: 30px">
				
				
				<label>搜索:</label>
				<input id="inSearch" type="text" name="strName" />
				<input onclick="onCli()" id="valute" type="submit" value="搜索" class="opt_sub"  />
				
				
				<!-- 搜索提示框  -->
				<div id="tsDiv">
				
				
				</div>
				
				
				</div>

2.js脚本编写

	<!-- 搜索提示 -->
		<script type="text/javascript">
		/* 保存模糊查询的数据 */
		var strName="";
		$(function () {
			$("#tsDiv").hide();
                         keyup键盘按下事件
			$("#inSearch").keyup(function () {
				if(!$(this).val()){
					$("#tsDiv").hide();
					fenye(1, "");
					strName="";
				}else{
					$("#tsDiv").show();
				}
				var value=$(this).val();
			  /*  $.post("AutoFull.do","valu="+value, function (msg) {
				   alert(msg)
			}); */
			
			  ajax实现跳转获取信息
			$.ajax({
				url:"http://localhost:8080/web_04/AutoFull.do",
				type:"POST",
				data:"valu="+value,
				dataType:"text",
				async:true,
				success: function(mag){
                   mag servlet中传回来的数据字符串 符合json格式的


					//console.log(mag)
                    转换成arr数组
                   var newlist=$.parseJSON(mag)
                 var mycontent="";
					$.each(newlist,function(index,values){
                    实现拼接
						mycontent+="<div onclick='addClick(this)'>"+values.ntitle+"</div>";
					 
						
					})
					 设置到输入提示框
					$("#tsDiv").html(mycontent);  
				
					
				},
				error:function(){
					alert("请求失败")
				}
			})
			
			
				
			})
			/* 输入框失去焦点 */
			 $("#inSearch").blur(function(){
				//隐藏提示框
				$("#tsDiv").hide(500);
			}) 
			
			/* 输入框获取焦点事件 */
		 	$("#inSearch").focus(function(){
				//显示提示框
				if($("#inSearch").val()!=""){
					$("#tsDiv").show();
				}
				
				
			    
			}) 
		})
		
		function addClick(obj) {
			$("#inSearch").val($(obj).html())
			//隐藏提示框
			$("#tsDiv").hide();
//           无刷新分页搜索的方法
			fenye(1, $(obj).html())
			
		}

3.Servlet界面的编写 !!

package com.baidu.server;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.baidu.dao.JxJsonDao;
import com.baidu.dao.XwFbDao;
import com.baidu.entity.NewsXwFb;


@WebServlet("/AutoFull.do")
public class AutoFullServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doPost(request, response);
	}
	
	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
设置编码格式
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		获取转过来的字段
		String strName=request.getParameter("valu");
		if(strName==null) {
			strName="";
		}
   数据库获取模糊查询数据 测试可以写死  使用 String中提供的包含测试  contains()
   返回类型时布尔值
		List<NewsXwFb> list =new XwFbDao().moHuAll(strName);
		List<NewsXwFb> lixw=new ArrayList<NewsXwFb>();
     JSOn解析不了字段去除  无用可去除 有用可上网找转换的方法  newsXwFb实体类
		for (NewsXwFb newsXwFb : list) {
			newsXwFb.setNimage("无");
			//newsXwFb.setNcontent( newsXwFb.getNcontent().replace("\"", "'"));
			newsXwFb.setNcontent("");
			lixw.add(newsXwFb);
		}
           吧数组转换为JSon字符串
		String content=JSON.toJSONString(lixw);
		
	  response.getWriter().println(content);
	}

}

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:32:12  更:2022-04-18 17:32:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:30:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码