js与java是不同语言,运行在不同环境下,因此无法直接获得对方数据。
java运行在服务器端,在同一个jsp文件中,java先运行,js后运行,java可以生成一段js代码,保证js运行得到相应的结果,因此可以用java定义js变量的方式来传递数据,例如:
<script>
var url="<%=url%>";
alert(username);
</script>
上面例子,<%%>中的内容会在服务器端运行,在“”中间输出网址,浏览器就会加载下面的结果:
<script>
var url="gif8.cn";
alert(url);
</script>
这部分就是标准的js代码了。
② jsp 下拉框从数据库中如何取值
直接在页面前面连接数据库查询出结果result,然后下面就直接result里面取就可以了。
先声明(拿oracle举例):
<%!
String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
String DBURL = "jdbc:oracle:thin:@XXX.XXX.XXX.XXX:1521:XXX" ;
String DBUSER = "XXX" ;
String DBPASSword= "XXX" ;
Connection con = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
执行查询:
<%
String sql = "select * from XXX" ;
try
{
Class.forName(DBDRIVER) ;
con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
pstmt = con.prepareStatement(sql) ;
rs = pstmt.executeQuery() ;
%>
显示的时候如下:
<%
while(rs.next())
{
i++ ;
int id=rs.getInt("id");
String title = rs.getString("admin") ;
String author = rs.getString("user") ;
%>
<td><%=admin%></td>
<td><%=user%></td>
大概代码差不多这样了,你看着凑凑
③ 在jsp中下拉框中如何获取数据库中的值
但是还有一种方法 通过获取下拉框的值 <select name="sel" onchange="check()"> -- 增加onchange事件 <%while (rs.next()) {%> <option value=""> -- 这里没有给选项赋值 -- 改为,如:<option value="<%=rs.getString(1)%>"> <%=rs.getString(1)%> </option> <%}%></select><script type="text/javascript"> function check(){var id = document.getElementsByName("sel").value; -- 获取下拉框的值 如:拼接url打开页面, var url = 'xxxx.do?id=' + id; //注,具体的url你要自己拼写,我这个是列子,不能用的 方法1,在本窗口打开页面: window.location = url ; 方法2,新窗口打开页面 window.open(url)}</script> 追问: 我终于发现了,能读取数据,可是把读取的数据放入数据库中就有问题了,难道还要转码才行吗? 回答: 当然`~~ 追问: 页面编码是gb2312那我要怎样转码呢? 回答: 首先你要知道你的数据库的是什么编码的,你页面的编码要符合你数据库的编码,这样的转码才是正确的 追问: 现在我不是从页面读取数据了,而是直接在程序中测试 Date.valueOf("1987-3-7") 比如我用这样的方法把这个数据放到数据库中去就自动变成了1905-6-1了,感觉太怪了 这个就和编码无关了 回答: 你具体的代码我也不知道,也不好给你说,给你个UTF-8转GB2312的代码吧 private String utf8Togb2312(String str){ StringBuffer sb = new StringBuffer(); for(int i=0; i<str.length(); i++) { char c = str.charAt(i); switch (c) {case '+':sb.append(' ');break;case '%':try {sb.append((char)Integer.parseInt( str.substring(i+1,i+3),16));}catch (NumberFormatException e) { throw new IllegalArgumentException();}i += 2;break;default:sb.append(c);break;}}String result = sb.toString(); String res=null;try{byte[] inputBytes = result.getBytes("8859_1");
④ java中 jsp页面如何从数据库获取select 中的值
可以再加一个option,默认显示数据库的值
<select name="">
<option value="<%=数据库取值%>"></option>
<option value="发布"></option>
<option value="保存"></option>
</select>
⑤ jsp获取数据库中的数据
<%
//JSP页面直接访问数据库
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try{
Class.forName("JDBC驱动");
conn = DriverManager.getConnection("url", "username", "password");
stmt = conn.createStatement();
rs = stmt.executeQuery("select factor, ratio from 表名 where id=1");
while(rs.next()){
String factor = rs.getString("factor");
String ratio = rs.getString("ratio");
%>
factor :<%=factor %>
ratio :<%=ratio %>
<%
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
}catch(Exception e1){
e1.printStackTrace();
}
}
%>
修改 驱动、url、username、password、表名、字段名成你应用的相应数据,然后将这些代码加入到你的jsp页面,就可以在jsp页面直接读取到数据库中的对应表指定字段的数据了,祝你好运!
⑥ jsp如何取值
首先,jsp本质就是servlet;
其次,用jsp的话,就一定要有支持jsp的web容器;
所以要实现你的版要求,肯定会权用到servlet。
根据你的需求,可以在jsp页面这么写:
1.导入你要使用的方法所属的类:<%@pageimport="你的类全名"%>
2.编写表达式:<%=Flight.getSpecificFlight()%><!--假设你的类名是Flight-->
⑦ 如何在jsp页面获取数据库中的数据
建立数据库连接
调用方法,比如list<User> userlist = DB.findAll(), req.setAttribute("list",userlist)
jsp部分:<c:forEach items="list" var="user">
<td>${user.id}</td> //显示User对象的id属性
</c:forEach>
用到forEach,要引入jstl.jar
⑧ JSP中el表达式的取值过程是怎样的
el表达式取值必需是servlet四大作用(servletContext>session>request>pageContext)中有的值
⑨ 如何在jsp页面获取数据库某个值
最简单的JSP页面中的数据库操作方法:
<%@ page
language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"
%>
<%@page import="java.sql.*"%>
<center>
<H1> <font color="blue" size="12">管理中心</font></H1>
<HR />
<table width="80%" border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>删除</th>
</tr>
<%
// 数据库的名字
String dbName = "zap";
// 登录数据库的用户名
String username = "sa";
// 登录数据库的密码
String password = "123";
// 数据库的IP地址,本机可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1";
// 数据库的端口,一般不会修改,默认为1433
int port = 1433;
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + ";databaseName=" + dbName + ";user=" + username
+ ";password=" + password;
//
//声明需要使用的资源
// 数据库连接,记得用完了一定要关闭
Connection con = null;
// Statement 记得用完了一定要关闭
Statement stmt = null;
// 结果集,记得用完了一定要关闭
ResultSet rs = null;
try {
// 注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// 获得一个数据库连接
con = DriverManager.getConnection(connectionUrl);
String SQL = "SELECT * from note";
// 创建查询
stmt = con.createStatement();
// 执行查询,拿到结果集
rs = stmt.executeQuery(SQL);
while (rs.next()) {
%>
<tr>
<td>
<%=rs.getInt(1)%>
</td>
<td>
<a href="prepareupdate?ID=<%=rs.getInt("ID")%>" target="_blank"><%=rs.getString(2)%></a>
</td>
<td>
<%=rs.getString(3)%>
</td>
<td>
<%=rs.getString(4)%>
</td>
<td>
<a href="delete?ID=<%=rs.getInt("ID")%>" target="_blank">删除</a>
</td>
</tr>
<%
}
} catch (Exception e) {
// 捕获并显示异常
e.printStackTrace();
} finally {
// 关闭我们使用过的资源
if (rs != null)
try {
rs.close();
} catch (Exception e) {}
if (stmt != null)
try {
stmt.close();
} catch (Exception e) {}
if (con != null)
try {
con.close();
} catch (Exception e) {}
}
%>
</table>
<a href="insert.jsp">添加新纪录</a>
</center>