<%@ page import="com.sessionloading.*" %>
<%@ page import="com.function.*" %>
<%@page import="com.news.form.TongziForm"%>
<%@page import="com.news.bean.TongziBean"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title><%=session.getAttribute("govtitle")%>
</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">
--></head>
<body>
<%//session 的二次赋值,解决session 丢失
String number1 = StrdesUnit.decrypt(request.getParameter("u1"))//用户编号、用户编码
String type = StrdesUnit.decrypt(request.getParameter("u2"))//登陆用户类型代理机构、管理处
String username = StrdesUnit.decrypt(request.getParameter("u3"))//登陆用户名称代理机构、管理处
session.setAttribute(SessionFactory.username,username)
session.setAttribute(SessionFactory.userid,number1)
session.setAttribute(SessionFactory.usertype,type)
//String avc="001"
//System.out.println(Counter.urlencoder(avc))
// number1=number1.toLowerCase()
TongziForm tForm=new TongziForm()
tForm.setZu_id(number1)
tForm.setZu_type(session.getAttribute("usertype").toString())
TongziBean tBean=new TongziBean()
tBean.listShowTz(tForm,request,"")
//加密参数
//new MainManager().getnumber()
//Counter.urldecoder(Counter.urlencoder(avc))//解密参数
//new MainManager().getnumber()
if(type.equals("002") ||type.equals("001")){ out.write("<script>var i=screen.availWidth-1000if(i>0){i=i/2}else{i=0} var y=screen.availHeight-700if(y>10){y=y/2-5}else{y=0}var nav=navigator.appVersionwindow.opener=nullwindow.open('govstart.jsp','fourBase','width=1000px,height=700px,left='+i+',top='+y+',toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=yes,hotkeys=no')window.open('','_parent','')window.close()</script>")
//left=0px,top=0px,width=1024px,height=700px,toolbar=no,menubar=no,Resizable=yes,scrollbars=yes, status=no
}else{
out.write("<script>alert('提示:请从正常途径登录本系统!')top.close()</script>")
}%>
</body>
</html>
Scanner sc = new Scanner(System.in)int num = sc.nextInt()
if (num == 4) {
Login()//调用Login
}
假设你LoginImpl类里写了具体的登录验证的逻辑并且有与数据库交互的相关方法,此时你用的是mysql数据库。如果有一天你想对登录的逻辑进行修改或者改用其他数据库比如oracle、sql server。
那么此时如果你使用的是第一种方法初始化login对象
那么你只需要新键一个类LoginImpl4oracle并且实现Login接口(接口内已经定义好了全部需要的方法,只要挨个实现就可以了,不需要重新梳理业务逻辑,重新定义各种方法)。
程序中将Login login=new LoginImpl()
这句改成Login login=new LoginImpl4oracle()
其他代码完全不用改,甚至可以把对象初始化写成配置文件,那么程序都不需要重新编译,只改配置文件就可以了。
而第二种LoginImpl login=new LoginImpl()
如果你想换实现就很麻烦,你不知道原来这个实现类有那些方法并且代码需要重新编译。
这就是面向接口变成的好处。