本文目录一览:
jsp是什么
JSP是一种动态网页技术标准,这种技术可以根据客户端的请求,生成动态或者静态网页,然后发送给客户端的请求者。
不少的朋友经常会在电脑科普网站上看到jsp这个概念,究竟这个jsp是什么意思?jsp又有什么作用和特点呢?下面让我们一起去了解吧。
详细内容
01
JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
02
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。
03
标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。
04
用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
05
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
解释JSP代码,越详细越好
%
Condb con=new Condb(); //建立数据库连接
int num=0; 定义计数变量 初始化为0
String sql="select * from tb_Result where Result='"+1+"'"; 数据库查询命令
ResultSet rs=con.executeQuery(sql); 执行数据库查询命令
while(rs.next()){ 判断是否是否是记录集最后一条同时移动数据库记录至下一条
num++; 计数变量自加1
%
tr
td width="37" height="22" align="center"%=num%/td
td height="22" align="left"a href="Rparticular.jsp?temp=%=rs.getString(2)%" 得到数据库第三个字段的值作为temp参数的值
%String str=rs.getString(2);out.println(str);% 输出数据库第三个字段的值
/a/td
td height="22" align="center"%=rs.getDate(8)%/td
td height="22" align="center"%=rs.getString(9)%/td
/tr
%
}
con.close(); 关闭数据库连接
%
求大神写一下jsp的简单的注册界面代码。
1.需要一个jsp页面:
//login.jsp核心代码:
form action="${pageContext.request.contextPath}/servlet/UserServlet" method="post"
input type="text" name="loginname" /input type="password" name="password"/
input type="submit" value="登录"/
/form
2.需要一个servlet来验证登录信息
//UserServlet 核心代码
class UserServlet extends HttpServlet{
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
private void process(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
String loginname = request.getParameter("loginname");
String password = request.getParameter("password");
//创建一个service来处理业务逻辑(包括查询数据库操作)
UserService service = new UserService();
boolean bool = service.validateUser(loginname,password);
if(!bool){
pw.println("用户名或密码错误");
}else{
pw.println("登录成功");
}
}
3.需要一个service处理业务逻辑(包括查询数据库操作)
//UserService 核心代码
public class UserService{
/**
*查询数据库验证用户是否存在,返回boolean
*/
public boolean validateUser(String loginname,String password){
boolean bool = false;
Connection conn = null;
PreparedStatement ps = null;
//这里以mysql为例
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
String sql = "select login_name,pass_word from t_user where login_name=? and pass_word=?";
ps = conn.prepareStatement(sql);
ps.setString(0, loginname);
ps.setString(1, password);
ResultSet rs = ps.executeQuery();
if(rs.next()){
bool = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(conn != null){
conn.close();
conn = null;
}
if(ps != null){
ps.close();
ps = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return bool;
}
}
jsp程序代码
%@ page language="java" import="java.util.*" errorPage="error.jsp" pageEncoding="UTF-8"%
% request.setCharacterEncoding("GBK");%
html
head
title动作处理页面/title
/head
body background="C:\tp\yy.JPG"
font color=yellow
centerbrh2
jsp:useBean id="loginbean" class="com.login.LoginBean"/jsp:useBean //使用jsp:useBean标签调用LoginBean.java,class指明JavaBean位置
jsp:setProperty name="loginbean" property="*" ///设置LoginBean的属性值
%out.println("用户号为:"+loginbean.getUserid()+"brbr"); 输出loginbean里面getUserid的值
if (loginbean.getUserid()==null){ //如果用户名为空
throw new Exception("尊敬的用户:系统登录页面中的用户名不能为空,请输入用户号!");
}
if (loginbean.getPsw()==null){ //如果密码为空
throw new Exception("尊敬的用户:系统登录页面中的密码不能为空,请输入密码!");
}
if (loginbean.getPsw().equalsIgnoreCase("neusoft")) //如果JavaBean的密码和输入密码相同
{
String puserid = request.getParameter("userid"); //获得此用户ID
Cookie cookies[] = request.getCookies();
//如果是上一步提交过来的,则更新Cookie的值
if(puserid != null) {
Cookie c = new Cookie("userid", puserid);
c.setMaxAge(60*60*24*30); //Cookie的有效期为1个月setMaxAge()是Cookie 的一个方法
器单位为秒
60*60*24*30等与30天*24小时*60分*60秒==结果就为1个月的秒数
response.addCookie(c);
}
session.setAttribute("login","ok");
session.setMaxInactiveInterval(-1);
%
jsp:forward page="success.jsp" / //跳转至success.jsp
%
}
else { //如果密码不正确则执行
out.println("对不起,密码输入错误!您此次系统登陆失败!请重新输入密码!brbr");
out.println("A href=login.jsp返回/Abr");
}
%
h2
br
hr
/font
/body
/html
答题完毕