show.jsp看懂,js中show
我想在一个jsp页面中 这个show.jsp用的是frameset框架。
可以这样用,但是你在写侧边栏时要将超链接(打个比方)的target设置为cpty_khdd.html
如何检索和显示数据库中的图像在 jsp 页中
用JSP从数据库中读取图片并显示在网页上:
环境mysql+tomcat:
1先在mysql下建立如下的table. 并insert图像
mysql.sql文件如下:
CREATE TABLE photo (
photo_no int(6) unsigned NOT NULL auto_increment,
image blob,
PRIMARY KEY (`photo_no`)
)
2把show.jsp放在tomcat的任意目录下. show.jsp作用:从数据库中读出blob,并产生image/jpg.
show.jsp文件如下:
%@ page contentType="text/html; charset=gbk" %
%@ page import="java.io.*"%
%@ page import="java.sql.*, javax.sql.*" %
%@ page import="java.util.*"%
%@ page import="java.math.*"%
%
String photo_no = request.getParameter("photo_no");
//mysql连接
Class.forName("com.mysql.jdbc.Driver").newInstance();
String URL="jdbc:mysql://localhost:3306/job?user=rootpassword=111111";
Connection con = DriverManager.getConnection(URL);
//oracle连接
//String URL="jdbc:oracle:thin@localhost:1521:orcl2";
//user="system";
//password="manager";
//Connection con = DriverManager.getConnection(URL,user,password);
try{
// 准备语句执行对象
Statement stmt = con.createStatement();
String sql = " SELECT * FROM PHOTO WHERE photo_no = "+ photo_no;
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
Blob b = rs.getBlob("photo_image");
long size = b.length();
//out.print(size);
byte[] bs = b.getBytes(1, (int)size);
response.setContentType("image/jpeg");
OutputStream outs = response.getOutputStream();
outs.write(bs);
outs.flush();
rs.close();
}
else {
rs.close();
response.sendRedirect("./images/error.gif");
}
}
finally{
con.close();
}
%
3把如下文件放在show.jsp的同一目录下.
index.html文件如下:
HTML
HEAD
TITLE 图像测试 /TITLE
/HEAD
BODY
TABLE
TR
TD图像测试/TD
/TR
TR
TDimg src="show.jsp?photo_no=2"/TD
/TR
/TABLE
/BODY
/HTML
jsp页面跳转续问,请高手作答
你可以在浏览器中查看当前地址。。。
还有就是你对服务器端跳转和客户端跳转没有完全理解的原因!!服务器端跳转后地址是不会变的,只有可客户端跳转的地址才会变!!
下面给你解释
打个比方:
你现在的路径是
现在是A.jsp在你的根目录/中但是B.sp是在
/B/中,所以B.jsp在A.jsp的下一级目录中
你要跳转到
B/B.jsp
现在用两种方式
1:
request.getRequestDispatcher("B.jsp").forward(request,response);
因为是服务器端跳转,所以虽然执行的是B/B.jsp但是你的地址栏路径依然是
那么也就意味着你现在的所有文件依然是在/目录中查找。
2:
但是如果你你在A.jsp中用response.sendRedirect("B/B.jsp"),那么你的地址栏地址是
那么也就意味着你现在要找文件的话都是从/B目录中开始.所以用不同的方式转会存在不同的路径问题.
现在假如你的目录结构为
/A.jsp
/B/B.jsp
/client/login.jsp
假设你是由A--B--login.jsp跳转的话假设B中用的是response.sendRedirect()方法
那么在A.jsp中如果你用第一种跳转方式的话就B.jsp中就要是response.sendRedirect("client/login.jsp");
因为此时的寻找地址是在/目录中,而client就在/目录中,所以一进去就找到了login.jsp
但是如果你在A.jsp中用的是客户端跳转方式也就是第二种方式的话B.jsp中你就要写为
response.sendRedirect("../client/login.jsp");
因为此时的地址栏地址应该是地址是
也就意味着你的开始寻址位置是/B中,但是client不在B中,所以要往上一层才找到client目录,进去以后才找到login.jsp
同样的目录结构但是要根据实际地址找地址,就像找人一样
常见的超链接也是客户端跳转,你都用html的话当然也就不存在服务器端跳转,也就不存在路径的复杂问题,你是用servlet开发,或者相关的mvc架构都有这个问题.,而且体现得更为明显,记住一句话,页面地址不由目录结构决定,而是由地址栏地址决定,所以要事先想一下使用什么样的跳转方式比较好!!
还有不同的服务器也会有不同的路径解析方式,以后你可以试试用weblogic就会发现!!
具体的服务器端跳转和客户端跳转我就不说了,你自己搞定
希望对你有帮助
QQ405266926多交流
JSP传值的问题
下面是把raw.getID() 的值传给show.jsp
把a href="/fzs/show.jsp"改为a href="/fzs/show.jsp?n=%=raw.getID() %"
在show.jsp写上
String n=request.getParameter("n");
out.print(n);
点击1,在show.jsp上会显示1
点击2,在show.jsp上会显示2
谁能帮我翻译一下JSP代码:
//request.getParameter是jsp获取参数的方法,获取的是id这个key中存放的值
String id=request.getParameter("id");
然后将获取的这个id转换成int行
int index=Integer.parseInt(id);
从session中获取shop对应的参数值,由于值是ArrayLIst的,所以强转型
ArrayList al=(ArrayList)session.getAttribute("shop");
然后将获取的ArrayList,将刚才的id去除掉
al.remove(index);
然后将处理完成的重新放入shop中
session.setAttribute("shop",al);
然后重定向到show.jsp
response.sendRedirect("show.jsp");
这个好像是注销的功能
假设需要编写一个JSP页面input.jsp,该页面提供一个表单。。。 来JAVA大神
input.jsp:
form?action="show.jsp"?method="post"
????用户名:input?type="text"?name="userName"?/br/
????密码:input?type="password"?name="password"?/br/
????电子邮箱:input?type="text"?name="email"?/br/
????地址:input?type="text"?name="address"?/br/
????input?type="submit"?value="提交"?/
/form
show.jsp:
%
????String?userName?=?request.getParameter("userName");
????String?password?=?request.getParameter("password");
????String?email?=?request.getParameter("email");
????String?address?=?request.getParameter("address");
????
????out.print("用户名:"?+?userName);
????out.print("br/");
????out.print("密码:"?+?password);
????out.print("br/");
????out.print("邮箱:"?+?email);
????out.print("br/");
????out.print("地址:"?+?address);
????out.print("br/");
%