温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Servlet和Jsp知识点有哪些

发布时间:2021-10-20 15:59:23 来源:亿速云 阅读:115 作者:柒染 栏目:大数据

这篇文章将为大家详细讲解有关Servlet和Jsp知识点有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

新建Servlet

        重写service方法,service方法有两个参数:req和resp,在jsp中叫做request和response。

编码设置  

resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("utf-8");

创建Service层对象

UserService us = new UserServiceImpl();

处理请求

        如果一个servlet需要处理多个请求,那servlet就需要识别来的是哪一个请求,可以在jsp的form表单中加一个input标签

<input type="hidden" name="oper" value="login">

        type属性值为hidden,这样不会影响页面效果,将所有区分请求的标签的name属性设成同一个,这里叫'oper',value设成不同的值。

        在service方法中做判断,分别调用不同的方法

            //获取操作类型
			String oper = req.getParameter("oper");
			if("login".equals(oper)) {
				//调用登录校验方法
				CheckUserLogin(req,resp);
			}else if("reg".equals(oper)){
				//调用注册功能
				userReg(req,resp);
			}else if("out".equals(oper)){
				//调用退出功能
				userOut(req,resp);
			}else if("pwd".equals(oper)){
				//调用密码修改功能
				userChangePwd(req,resp);
			}else if("showAll".equals(oper)){
				//调用查看所有用户信息功能
				userShowAll(req,resp);
			}else {
				System.out.println("没有找到相应操作"+oper);
			}

        req.getParameter(“属性名”)方法可以获取form表单中提交的数据。

        那form表单如何知道要提交给哪个servlet处理呢?

        通过设置form标签的action属性就可以,将action属性值设成servlet的别名。

        那如果没有form表单,比如我只是在页面中点击一个按钮,想让servlet来处理,怎么实现?操作如下:

function tuichu(){
	var flag = window.confirm("是否退出?");
	if (flag) {
	    //利用form表单提交oper
		document.write("<form action='user' method=post name=form1 style='display:none'>");  
	    document.write("<input type='hidden' name='oper' value='out'>");  
	    document.write("</form>");  
	    document.form1.submit(); 
	}
}

请求转发与重定向

        在servlet中实现页面跳转有两种办法:请求转发和重定向

        请求转发:

req.getRequestDispatcher("login.jsp").forward(req, resp);

        请求转发还是一次请求,浏览器地址栏中的url不会改变,req中的数据仍然在。

        重定向:

resp.sendRedirect("main.jsp");

        重定向是两次请求,url改变,req中的数据没了。

Cookie和Session

        不同请求见的数据流通如何完成?

        req里的数据没了,是不能实现的。

        有两种办法:cookie和session

        cookie:将一些数据存在浏览器中,数据量较小。

        基本使用方法:

//创建cookie
 Cookie c = new Cookie("uname", "zhangsan");
 Cookie c2 = new Cookie("color","red");
//设置cookie有效期,参数的单位是秒
 c2.setMaxAge(3600);
//设置路径
c2.setPath("/Servlet03/gc");
    		
//添加到浏览器
resp.addCookie(c);//临时存储
resp.addCookie(c2);//通过上面设置的有效期,实现了cookie纪录一个小时的定长存储
		//获取cookie
		Cookie[] cks = req.getCookies();
		if(cks!=null) {
			for(Cookie c:cks) {
				System.out.println(c.getName()+":"+c.getValue());
			}
		}

        Session:将数据存在浏览器中,在cookie中存一个session的id连接到服务器端的session对象

        基本使用方法:

			String name = "张三";
			
			//创建session对象
			HttpSession hs = req.getSession();
			//这行代码既是创建又是获取session
			
			
			//设置session时效
			hs.setMaxInactiveInterval(5);//设置时间为5秒
			
			hs.invalidate();//强制失效
			
			//存储数据
			hs.setAttribute("name", name);

关于Servlet和Jsp知识点有哪些就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI