jsp 怎么用java和jsp传值

Python014

jsp 怎么用java和jsp传值,第1张

1.JSP传值给Servlet

JSP传值给Servlet有几种形式:Form表单传值,url传值,其他方式传值

a、form表单传值:

JSP页面有:<input type="radio" name="staffdepartment" value="1" id="department1" />,将department的id传到Sevlet中,在程序中如下:ServletRequest request;Stringstaffdepartment=request.getParameter("staffdepartment")可获取jsp传的department,但要获取id还要进行转化:int int_staffdepartment=Integer.parseInt(staffdepartment)

b、url传值

比如这里的 <a>标签的 href属性与 <form>标签的 action属性的值 "JspServlet?action=toServlet",在 servlet同样用 request.getParameter("action")获取;

c、Java代码传值

java片段代码,servlet只能接到 session.setAttribute("testSession","Hello session")的内容,而接不到 request的内容。在 servlet里用 request.getSession().getAttribute("testSession")获取 session内容。

Servlet传值给Jsp

具体实现如下,java代码:

String   a= "abccdefg " 

             request.setAttribute( "ValueA ",a) 

             request.getRequestDispatcher( "网址/jsp页面 ").forward(request,response) 

jsp页面:

<%

String   s   =(String)request.getAttribute( "ValueA ")

%>

jsp页面就可以取出Servlet的值。

不知道你有没有学习JavaBean,如果学习了就好理解:

在test.jsp页面使用<jsp:useBean>标签调用javabean

在test.jsp里使用get()方法就可以得到数据了

//下面是test.jsp

<%@ page contentType="text/htmlcharset=GB2312"%>

<jsp:useBean id="test" class="test.Testjavajsp" scope="session"/>

<%

out.println("用户名:"+test.getUsername())

%>

//下面是Testjavajsp类

package test

import java.sql.*

public class Testjavajsp {

String username=""

Connection conn=null

Statement stmt=null

ResultSet rs=null

public String getUsername() {

return username

}

public void setUsername(String username) {

this.username = username

}

public Testjavajsp()

{

String sql="select * from userinfo where userID=1"

String driver="com.mysql.jdbc.Driver"

String url="jdbc:mysql://localhost:3306/qquser"

try {

Class.forName(driver)

conn=DriverManager.getConnection(url,"root","123456")

stmt=conn.createStatement()

rs=stmt.executeQuery(sql)

while(rs.next())

{

username=rs.getString(1)

}

rs.close()

}catch(Exception e){

System.out.println("连接失败")

}

}

}

希望对你有帮助

其实还有很多种方法可以

可以使用Servlet类来传递

返回一个RequestDispatcher对象

该对象的forward()方法用于转发请求

RequestDispatcher getRequestDispatcher(String path)

例如:request.getRequestDispatcher(“url”),forward(request,response)

设置追加请求中所需的属性参数

Void setAttribute(“属性名”,”属性值”)

例如:request,setAttribute(“username”,”administrator”)

用于获取请求中携带的属性参数

Object getAttribute(“属性名”)

例如:String usernam=(String)request.getAttribute(“username”)

响应对象response方法:response.sendRedirect(“url”)

用于充定向一个新的URL地址

经常配合使用session会话对象进行所需属性参数的传递

例如:session,setAttribute(“username”,”administrator”)

session.serAttribute(“password”,”123456”)

...

If()username!=null{

Out.println(“欢迎你:”+username.toString()

}

2.转发和重定向的区别

分别从5个点进行划分区别

(1)URl变化:转发不会发生变化,重定向会改变地址栏的URL

(2)重新发出请求:转发不会,从头至尾只有一次请求,重定向会发起两次请求

(3)是否携带请求:转发会携带request相关信息,重定向不会携带,所以会丢失

(4)目标URl要求:转发只能跳转WEB项目下的目标文件,重定向可跳转任意URL

(5)行为区别:转发时服务器端的行为,重定向时客户端行为

3.四中常用的跳转方式

(1)后台发起转发请求

request.getRequestDispatcher(“index.jsp”).forward(request,response)

(2)后台发起重定向

Response.sendRedirect(“indec.jsp”)

<!--3.jsp标签跳转 相当于前端的转发-->

<jsp:forward page=”index.jsp”>

<jsp:param value=”admin” name=”user name”>

<jsp:param value=”123456” name=”password”>

</jsp:forward>

<!--4.超链接跳转 get请求方式跳转页面 类似于前段的重定向-->

<a href=”index.jsp?username=admin&admin&password=123456”>跳转index.jsp</a>