
JS全称是JavaScript,是运行的客户端的一种页面前端的脚本语言。用于做前端页面特效 数据校验 等等诸多功能。
JSP全称Java Server Pages,是一种运行在服务器端 用来编写动态网站后台的语言,使用JPS可以制作JSP动态网站。它的特点是安全新能可靠,一般用于政府及银行级别的网站开发,学习难度比较高
具体的详细对比:
(一 简述)
JS,是JavaScript的缩写形式,而JavaScript是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言。
它在Web开发中JS占据着举足轻重的地位,所有交互、逻辑层的代码都应该由它来实现。
(二 具体角色)
如果把网站建设比喻成盖楼房,那么HTML就是这个楼房的钢筋水泥,CSS就是楼房的布局装饰,而JS就是楼房中大大小小无处不在的开关了。
从这样的角度而言,JS就是Web开发中负责逻辑层的语言,而现如今相当火热的“用户体验”的概念,最重要的代码部分还是需要JS来编写。
(三 使用方式)
JS的引入方式大体可以分为两种:
第一种是直接写入当前页面中,需要写在标签之间即可。
第二种是写入一个js的文件中,然后通过
(一JSP 简介)
1)JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
2)JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP *** 作和命令来编写JSP。
3)JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
4)JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。
(二jsp与其他后台语言的优势)
1)性能更加优越,因为JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。
2)服务器调用的是已经编译好的JSP文件,而不像CGI/Perl那样必须先载入解释器和目标脚本。
3)JSP基于Java Servlets API,因此,JSP拥有各种强大的企业级Java API,包括JDBC,JNDI,EJB,JAXP等等。
4)JSP页面可以与处理业务逻辑的servlets一起使用,这种模式被Java servlet 模板引擎所支持。
最后,JSP是Java EE不可或缺的一部分,是一个完整的企业级应用平台。这意味着JSP可以用最简单的方式来实现最复杂的应用。
以下列出了使用JSP带来的其他好处:
1)与ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。
2)与纯 Servlets相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。
3)与SSI相比:SSI无法使用表单数据、无法进行数据库链接。
4)与JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。
5)与静态HTML相比:静态HTML不包含动态信息。
还有这样的需求呀?无奇不有……
写的dao的实现就行了呀 ,何必得要jsp呢?用jsp,只会越来越乱^
CustomerDaojava
package cnitcastdao;
import javautilList;
import cnitcastdomainCustomer;
public interface CustomerDao {
public void add(Customer customer);
public Customer find(int id);
public List getAllCustomer();
public void delete(int id);
public void update(Customer customer);
public int getAllRecord();
public List getCustomerByPage(int startindex,int pagesize);
}
CustomerDaoJdbcImpljava
package cnitcastdaoimpl;
import javasqlConnection;
import javasqlPreparedStatement;
import javasqlResultSet;
import javautilArrayList;
import javautilList;
import cnitcastdaoCustomerDao;
import cnitcastdomainCustomer;
import cnitcastutilJdbcUtils;
public class CustomerDaoJdbcImpl implements CustomerDao {
/
id int primary key auto_increment,
name varchar(20) not null,
sex varchar(4) not null,
birthday date,
cellphone varchar(20) not null,
Email varchar(40),
preference varchar(100),
type varchar(40),
Description varchar(255)
/
public void add(Customer customer) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "insert into customer(name,sex,birthday,cellphone,email,preference,type,description) values(,,,,,,,)";
st = connprepareStatement(sql);
stsetString(1, customergetName());
stsetString(2, customergetSex());
stsetDate(3, new javasqlDate(customergetBirthday()getTime()));
stsetString(4, customergetCellphone());
stsetString(5, customergetEmail());
stsetString(6, customergetPreference());
stsetString(7, customergetType());
stsetString(8, customergetDescription());
stexecuteUpdate();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
public void delete(int id) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "delete from customer where id=";
st = connprepareStatement(sql);
stsetInt(1, id);
stexecuteUpdate();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
public Customer find(int id) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "select id,name,sex,birthday,cellphone,email,preference,type,description from customer where id=";
st = connprepareStatement(sql);
stsetInt(1, id);
rs = stexecuteQuery();
if(rsnext()){
Customer c = new Customer();
csetId(rsgetInt("id"));
csetName(rsgetString("name"));
csetSex(rsgetString("sex"));
csetBirthday(rsgetDate("birthday"));
csetCellphone(rsgetString("cellphone"));
csetEmail(rsgetString("email"));
csetPreference(rsgetString("preference"));
csetType(rsgetString("type"));
csetDescription(rsgetString("description"));
return c;
}
return null;
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
/
Id 编号 varchar(20)
name 客户姓名 varchar(20)
sex 性名 varchar(4)
birthday 生日 date
cellphone 手机 varchar(20)
Email 电子邮件 varchar(40)
preference 客户爱好 varchar(100)
type 客户类型 varchar(40)
Description 备注 varchar(255)
/
public List getAllCustomer() {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "select id,name,sex,birthday,cellphone,email,preference,type,description from customer order by id";
st = connprepareStatement(sql);
rs = stexecuteQuery();
List list = new ArrayList();
while(rsnext()){
Customer c = new Customer();
csetId(rsgetInt("id"));
csetName(rsgetString("name"));
csetSex(rsgetString("sex"));
csetBirthday(rsgetDate("birthday"));
csetCellphone(rsgetString("cellphone"));
csetEmail(rsgetString("email"));
csetPreference(rsgetString("preference"));
csetType(rsgetString("type"));
csetDescription(rsgetString("description"));
listadd(c);
}
return list;
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
public void update(Customer customer) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "update customer set name=,sex=,birthday=,cellphone=,email=,preference=,type=,description= where id=";
st = connprepareStatement(sql);
stsetString(1, customergetName());
stsetString(2, customergetSex());
stsetDate(3, new javasqlDate(customergetBirthday()getTime()));
stsetString(4, customergetCellphone());
stsetString(5, customergetEmail());
stsetString(6, customergetPreference());
stsetString(7, customergetType());
stsetString(8, customergetDescription());
stsetInt(9, customergetId());
stexecuteUpdate();
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
public int getAllRecord() {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "select count() from customer";
st = connprepareStatement(sql);
rs = stexecuteQuery();
if(rsnext()){
return rsgetInt(1);
}
return 0;
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
public List getCustomerByPage(int startindex, int pagesize) {
Connection conn = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
conn = JdbcUtilsgetConnection();
String sql = "select id,name,sex,birthday,cellphone,email,preference,type,description from customer limit ,";
st = connprepareStatement(sql);
stsetInt(1, startindex);
stsetInt(2, pagesize);
rs = stexecuteQuery();
List list = new ArrayList();
while(rsnext()){
Customer c = new Customer();
csetId(rsgetInt("id"));
csetName(rsgetString("name"));
csetSex(rsgetString("sex"));
csetBirthday(rsgetDate("birthday"));
csetCellphone(rsgetString("cellphone"));
csetEmail(rsgetString("email"));
csetPreference(rsgetString("preference"));
csetType(rsgetString("type"));
csetDescription(rsgetString("description"));
listadd(c);
}
return list;
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JdbcUtilsrelease(rs, st, conn);
}
}
}
用sql server的时候就不用设置odbc了,那个已经过时了。
现在使用最多的是打开1433端口,使用数据库驱动直接和数据库交互。
这样在效率上要明显高于使用jdbc+ODBC的。因为直接用java和sql server交互是需要jdbc一层,使用jdbc+odbc的话需要两次交互的,影响了性能。
sqlserver默认的情况下是不打开1433端口的,需要打补丁,如果你用的是2000版本的话可以打上sp3补丁,好像文件名叫做chs_sql2ksp3(SQL Server 2000 更新程序)exe吧,具体的也不清楚了。如果你使用的是2005,到网上查下,看需要什么补丁,1433端口打开后就方便了,不用配置数据库源。直接就可以用了,具体用法见下面
try {
// 查找SQL Server的JDBC Driver
ClassforName("commicrosoftjdbcsqlserverSQLServerDriver");
/
用URL,USERNAME,PASSWORD去连接本地的SQL Server数据库 注意:SQL
Server的URL形式是:jdbc:microsoft:sqlserver://数据库服务器名称:数据库端口
/
conn = DriverManager
getConnection(
"jdbc:microsoft:sqlserver://localhost:1433; DatabaseName="test",
"sa", "password");
Systemoutprintln("打开数据库成功");
connclose();
Systemoutprintln("关闭数据库成功");
}
//捕获错误
catch (Exception e) {
//打印出错误信息
Systemoutprintln("发生如下错误:");
Systemoutprintln(egetMessage());
}
直接使用就可以了,根本用不着配置odbc的,用户名为你sqlserver的用户名。密码为sqlserver密码,如果为空,使用空字符串即可。
希望以上会对你有所帮助
1 在jakarta-tomcat-559\conf\Catalina\localhost目录下拷贝一个managerxml文件,在另一个盘中修改成(工程名xml)如:myjndixml文件:
2 把myjndixml文件的内容修改
<Context docBase="F:\myjndi\WebRoot"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
<!-- Link to the user database we will get roles from -->
<ResourceLink name="users" global="UserDatabase"
type="orgapachecatalinaUserDatabase"/>
<Resource name="jdbc/pubs"
auth="Container"
type="javaxsqlDataSource"
driverClassName="commicrosoftjdbcsqlserverSQLServerDrive" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"
username="sa"
password=""
maxActive="20"
maxIdle="10"
maxWait="10000"/>
</Context>
3.然后在webxml文件中添加以下内容:
<resource-ref>
<res-ref-name>jdbc/pubs</res-ref-name>
<res-type>javaxsqlDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4.如何获取Connection对象具体代码如下:
package comjwdb;
import javasqlConnection;
import javasqlDriverManager;
import javaxnaming;
import javaxsqlDataSource;
publicclass Dbmanager {
private Connection con;
private Context ctx;
public Connection getcon() {
try {
ctx = new InitialContext();
DataSource ds = (DataSource) ctxlookup("java:comp/env/jdbc/pubs");
con = dsgetConnection();
returncon;
} catch (Exception e) {
// TODO Auto-generated catch block
eprintStackTrace();
returnnull;
}
}
}
要注意一点 只要在上引号之间的内容,编译器都判断是字符串了,无法当变量处理,处理方法就像大家说的使用字符串拼接,
即String sql="select from list where guzhangma='" + textfield+"'";//textfield为变量
还有一种方法就是使用占位符,很方便,可以避免被字符串拼接弄的头大,也对sql注入有一定的防范
即使用PreparedStatement代替Statement
这条语句就可以写成:
String sql="select from list where guzhangma=";//这里是一个占位符PrepareStatement pstmt = connprepareStatement(sql);
pstmtsetString(1, textfield);//给占位符赋值,即把textfield的值赋给第一个“?”
详细用法可以去查看API文档
以上就是关于JSP和JS的区别全部的内容,包括:JSP和JS的区别、求JSP向mysql插入,删除,查询数据源代码、JSP编程中的ODBC数据源配置问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)