求大神指导!一打开页面就能调数据库中的数据!

_o小怪兽o_ 2012-07-19 11:19:26
利用servlet和jsp页面、java语言,使得jsp页面一打开就能调用数据库中的数据。求各位大神指导一下!
就如同一个页面的新闻动态一样,一打开就能看到数据库中的数据。我使用的时oracle数据库。能附上每一步的代码就更好了!先谢过各位大神了!
...全文
159 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
逛街的猫 2012-07-20
  • 打赏
  • 举报
回复
在 web.xml中设置配置,运行Servlet 在用重定向定到jsp页面,就好了!!
_o小怪兽o_ 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]
引用 13 楼 的回复:
这段代码我试验成功了,我发现有一个问题,如果别人查看jsp源代码就可以很清楚的看到我的数据库用户名和密码了,有没有什么方法封装这段代码?


一,你数据库端口不会对公网敞开吧?
二,jsp代码驻留服务器端是不会发到客户端的,客户端不会获取你的用户名密码
[/Quote]
看来还得实践出真知啊。我测试了下,果然客户端看不到。谢谢了,以前没经验,也没去试过。谢谢了!
xuhesheng 2012-07-20
  • 打赏
  • 举报
回复
新手,你使用jsp的时候,可以使用下ajax去获取数据么
另外6#说的不正确的,body的onload属性,执行的是js方法
你直接写java代码是不可靠的
jsp中的java代码只是将执行的结果返回给jsp页面中直接使用的

针对你的问题
你有必要先学会开关数据库
读取数据
以及在jsp中展示一些内容
也就是MVC的教程你需要知道一些理论和概念上的东西
  • 打赏
  • 举报
回复


这有何难??
_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
Java code


1、mysql5 绿色版

创建数据库
create database javassdb;

创建表:
>use javassdb;
>create table tbl_user(id int auto_increment Primary Key,
username varchar(200),
email varchar(200),
……
[/Quote]
嗯,谢谢了。你的这段代码给我很大启示,我用的是oracle,但是我可以慢慢去琢磨下。再次感谢!
_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
JSP页面不是直接<%%>就可以了吗?或者<body onload=<%开数据库代码。。。%> ...
[/Quote]
噢, body onload 是不是 页面一开始加载就 执行后面的代码?
五哥 2012-07-19
  • 打赏
  • 举报
回复

1、mysql5 绿色版

创建数据库
create database javassdb;

创建表:
>use javassdb;
>create table tbl_user(id int auto_increment Primary Key,
username varchar(200),
email varchar(200),
password varchar(200)) ;

>insert into tbl_user(username,email,password) values('A', 'A@163.com', 'A') ;
>insert into tbl_user(username,email,password) values('B', 'B@163.com', 'B') ;
>insert into tbl_user(username,email,password) values('C', 'C@163.com', 'C') ;

2、下载tomcat 在tomcat的 webapps目录中创建
myTest1
myTest1\index.jsp
myTest1\WEB-INF\web.xml
myTest1\WEB-INF\classes
myTest1\WEB-INF\lib\mysql-connector-java-5.0.8-bin.jar

3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>TestWeb</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

4、index.jsp

<%@ page language="java" import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " pageEncoding="UTF-8"%>
<HTML>
<BODY>
<H3>Access MySQL DB Example</H3>

<table border="2">
<tr>
<td> id</td>
<td> 名称</td>
<td> 邮箱</td>
<td> 密码</td>
</tr>
<%
Class.forName("com.mysql.jdbc.Driver"); //加载驱动
Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.44:3306/javassdb",
"root","root");//创建连接

String sql ="select id , username, email , password from tbl_User " ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
try{
pstmt = conn.prepareStatement(sql) ; //
rs = pstmt.executeQuery() ;//查询
while(rs.next()){ //遍历查询结构,现实在页面中
%>
<tr>
<td><%=rs.getInt("id" )%></td>
<td><%=rs.getString("username")%></td>
<td><%=rs.getString("email")%></td>
<td><%=rs.getString("password")%></td>
</tr>
<%
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if (rs != null) rs.close() ;
if (pstmt != null) pstmt.close() ;
if (conn != null) conn.close() ;
}catch(Exception e){
e.printStackTrace() ;
}
}


%>
</table>
</BODY>
</HTML>

5、启动tomcat

6、IE 地址栏:http://localhost:8080/myTest 即可看到效果





_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
直接访问servlet 然后servlet 跳转jsp
[/Quote]
一般都是输入页面地址先访问jsp页面,通过页面去访问servlet。至于你这个直接访问servlet我有很多疑惑,能不能再说的详细一点。谢谢了。
  • 打赏
  • 举报
回复
JSP页面不是直接<%%>就可以了吗?或者<body onload=<%开数据库代码。。。%> ...
_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
最好使用Ajax加载、
[/Quote]
Ajax是一种不错的技术,小弟我还没有怎么去涉及这部分的技术。如果可以的话,能不能给我一个这种跳转的模板,我自己来研究一下。谢谢了。
风吹风铃动 2012-07-19
  • 打赏
  • 举报
回复
直接访问servlet 然后servlet 跳转jsp
绝世酱油瓶 2012-07-19
  • 打赏
  • 举报
回复
最好使用Ajax加载、
_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
js实现调用后台业务逻辑
[/Quote]

谢谢, 听你一点拨,还真有点思路了,但是我以前没写过这种的js,能不能麻烦你帮我写一个模板什么的。谢谢了
LucEaspe 2012-07-19
  • 打赏
  • 举报
回复
js实现调用后台业务逻辑
yktd26 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]
这段代码我试验成功了,我发现有一个问题,如果别人查看jsp源代码就可以很清楚的看到我的数据库用户名和密码了,有没有什么方法封装这段代码?
[/Quote]

一,你数据库端口不会对公网敞开吧?
二,jsp代码驻留服务器端是不会发到客户端的,客户端不会获取你的用户名密码
_o小怪兽o_ 2012-07-19
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
Java code

1、mysql5 绿色版

创建数据库
create database javassdb;

创建表:
>use javassdb;
>create table tbl_user(id int auto_increment Primary Key,
username varchar(200),
email varchar(200),
pa……
[/Quote]
这段代码我试验成功了,我发现有一个问题,如果别人查看jsp源代码就可以很清楚的看到我的数据库用户名和密码了,有没有什么方法封装这段代码?
五哥 2012-07-19
  • 打赏
  • 举报
回复


1、mysql5 绿色版

创建数据库
create database javassdb;

创建表:
>use javassdb;
>create table tbl_user(id int auto_increment Primary Key,
username varchar(200),
email varchar(200),
password varchar(200)) ;

>insert into tbl_user(username,email,password) values('A', 'A@163.com', 'A') ;
>insert into tbl_user(username,email,password) values('B', 'B@163.com', 'B') ;
>insert into tbl_user(username,email,password) values('C', 'C@163.com', 'C') ;

2、下载tomcat 在tomcat的 webapps目录中创建
myTest2
myTest2\index.jsp
myTest2\show.jsp
myTest2\WEB-INF\web.xml
myTest2\WEB-INF\classes\org\servlet\MyServlet.class
myTest2\WEB-INF\classes\org\vo\User.class
myTest2\WEB-INF\lib\mysql-connector-java-5.0.8-bin.jar
myTest2\WEB-INF\lib\servlet-api.jar



3、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>TestWeb</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>

</welcome-file-list>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.servlet.MyServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
</web-app>

4、index.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<HTML>
<BODY>
<H3>Access MySQL DB Example</H3>

<form action="MyServlet" method="post">
<input type="submit" value="查看" />
</form>
</BODY>
</HTML>

5、User.java
package org.vo;

public class User {

private int id ;
private String username ;
private String password ;
private String email ;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(){

}
public User(int id, String username, String password, String email) {
this.id = id;
this.username = username;
this.password = password;
this.email = email;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + ", email=" + email + "]";
}




}


6、MyServlet.java

package org.servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.vo.User;

public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
List list = new ArrayList();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
User user = null;

String sql = "select id , username, email , password from tbl_User ";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://192.168.0.44:3306/javassdb", "root", "root");// 创建连接
pstmt = conn.prepareStatement(sql); //
rs = pstmt.executeQuery();// 查询
while (rs.next()) {
user = new User(rs.getInt("id" ), rs.getString("username"), rs.getString("email"), rs.getString("password")) ;
list.add(user) ;
}
req.getSession().setAttribute("users", list) ;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (rs != null)
rs.close();
if (pstmt != null)
pstmt.close();
if (conn != null)
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}

resp.sendRedirect("show.jsp") ;
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}

}




8、启动tomcat

9、IE 地址栏:http://localhost:8080/myTest2 即可看到效果 然后点击 查看按钮
或者 http://localhost:8080/myTest2/MyServlet





67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧