JSP常见功能的实现
By Alen
1. 登陆实现
<%
String username=request.getParameter("user"); //获取登陆信息
String pass=request.getParameter("pass");
//out.println(username);
// out.println(pass);
String sql="select * from admin where admin_name='"+username+"'"+" and admin_pass='"+pass+"'";
ResultSet rs=dbBean.exeSQL(sql);
//int result=0;
if(!rs.next()){
response.sendRedirect("Error.jsp"); //登陆失败
}
else{ //登陆成功
session.setAttribute("username",rs.getString("admin_name"));
session.setAttribute("pass",""+rs.getString("admin_pass")+"");
response.sendRedirect("Welcome.jsp");
}
%>
思路:主要是先从TEXT中获取用户名等相关参数,然后与数据库中相比较,如果所得数据集不为空,则登陆成功,转向登陆成功页面并且保存相关数据(主要用SESSION)session.setAttribute("username",rs.getString("admin_name"));。
2、SESSION保存信息应用
a) session.setAttribute("username",rs.getString("admin_name")); //把相关信息定义一个变量保存好
b) <%=session.getValue("username") %>; //然后通过这变量来应用相关信息
3、退出模块
a) 主要用超链接<a class="grey" href="Welcome.jsp?loginout=true"> exit this system!</a>
b) 然后用下面的代码<%String loginout=request.getParameter("loginout"); //exit this system
if(loginout!=null){
if(loginout.compareTo("true")==0)
{
session.removeAttribute("username");
session.removeAttribute("pass");
response.sendRedirect("Login.jsp");
}
} %>
就可以退出了,等于就是清除相关的SESSION。
4、根据ID或者某个属性值得到具体信息
a) 用个超链接<a href="bookinfo.jsp?id=<%=rs.getString("news_id")%>">
<fontcolor="#FF0000"><%=rs.getString("news_title")%></font></a>
b) 然后用String id=request.getParameter("id");即可获取到,然后用SQL语句就可以完成。
<%
String id=request.getParameter("id");
String sql2="select * from news where news_id="+id;
ResultSet set=dbBean.exeSQL(sql2);
while(set.next()){
out.println(dbBean.getString(set,"news_id"));
out.println(dbBean.getString(set,"news_title"));
out.println(dbBean.getString(set,"news_content"));
}
%>
5、图片数据库中的存取以及调用
a) 在数据库中用地址储存如:images/1002.jpg (放在fengmian表里面)
b) 然后在代码中<img src=<%=rs.getString("fengmian")%> width="60" height="80"></td>调用即可。
c) 需注意images目录应该放在WebRoot目录下,这样才会在服务器中部署. 否则图片显示不出来的。
6、利用SCRIPT来实现弹出框,并且转向另外一个页面
a) <%out.println("<script>alert('ok');window.location='Login.jsp';</script"); %>
7、往数据库添加数据操作
a) <input type="submit" name="Submit" value="确 认" > 点击然后由下面的代码处理
b) 添加处理代码
<%
//添加操作
if(request.getParameter("Submit")!=null)
{
String catename=request.getParameter("BigClassName");
String highid=request.getParameter("BigClassID");
sql="insert into category(categoryName,highLevelID) values('"+catename+"',"+highid+")";
stmt.executeUpdate(sql);
out.print("<script>alert('添加图书类别成功!');window.location='da_category.jsp';</script>");
}
c) 如果用的是FORM形式处理的话,就是转向另外一个JSP页面进行处理了!
8、中文转换问题
当从数据库中取出的是中文的话,用如下代码转换:
a) String catename=new String(request.getParameter("BigClassName").getBytes("ISO8859-1"));
b) request.setCharacterEncoding("gbk"); 页面中从数据库获取数据显示中文时用到.
c) <%@ page contentType="text/html;charset=gb2312" %> 主要用在指令元素中
注意: 三者具体区别及应用需查资料.
9、从结果集中获取任意行任意列的值
a) Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
ResultSet rs=stmt.executeQuery(sql);
其中括号中的2个参数很重要,表示结果集可以向前后移动并且声明是否更新到结果集等
b) rs.absolute(2);用来绝对定位到某一行
c) out.println(rs.getString(2));用来绝对定位到某一列
这样就完成了可以对结果集中任意某个值进行读取!