show.jsp看懂,js中show

http://www.itjxue.com  2023-01-22 02:32  来源:未知  点击次数: 

我想在一个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/");

%

(责任编辑:IT教学网)

更多