JSP实现简单聊天室的问题
下面是这个聊天室的全部代码:<%@pagelanguage="java"pageEncoding="GBK"%><html><head><title>MyJSP'lab....
下面是这个聊天室的全部代码:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords")!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("char"));
}
}
%>
<form action="lab.jsp" method="get">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="sumbit" name="sumbit" value="提交">
</form>
</body>
</html>
我的问题:
预想的是实现点击sumbit这个按钮就会把mywords输入的文字显示到当前这个页面的上方,但是实际却没有显示,点了按钮只看到网页的地址发生了变化,请问怎样才能实现显示文字在当前页面?
感谢三位网友的热心回答,现在问题基本上解决了,但是又遇到一个小问题,就是无法在当前页面显示中文字符,遇到中文字符都是?号显示的,我已经把form的method改为"post",最后修改后的代码如下:
<%@ page language="java" pageEncoding="GBK" contentType="text/html;Charset=GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords")!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="5-21.jsp" method="post">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="submit" name="sumbit" value="提交">
</form>
</body>
</html>
如能再帮我解决这个问题,再加10分! 展开
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords")!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("char"));
}
}
%>
<form action="lab.jsp" method="get">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="sumbit" name="sumbit" value="提交">
</form>
</body>
</html>
我的问题:
预想的是实现点击sumbit这个按钮就会把mywords输入的文字显示到当前这个页面的上方,但是实际却没有显示,点了按钮只看到网页的地址发生了变化,请问怎样才能实现显示文字在当前页面?
感谢三位网友的热心回答,现在问题基本上解决了,但是又遇到一个小问题,就是无法在当前页面显示中文字符,遇到中文字符都是?号显示的,我已经把form的method改为"post",最后修改后的代码如下:
<%@ page language="java" pageEncoding="GBK" contentType="text/html;Charset=GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords")!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="5-21.jsp" method="post">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="submit" name="sumbit" value="提交">
</form>
</body>
</html>
如能再帮我解决这个问题,再加10分! 展开
3个回答
展开全部
改成下面的样子:
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords"颂桥)!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="a1.jsf" method="post">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="submit" name="sumbit" value="提交">
</form>
</body>
</html>
1.要用post提交,否则中文乱码
2.out.print((String)application.getAttribute("char")); 这句链滚你写错了,应该是chat不是char
3.你第一次运行的时候application.getAttribute("chat")肯定是空的,是空野唤猛的话你又什么都不作,下次还是空的呀
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null)
{ if(request.getParameter("mywords"颂桥)!=null)
{ String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="a1.jsf" method="post">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="submit" name="sumbit" value="提交">
</form>
</body>
</html>
1.要用post提交,否则中文乱码
2.out.print((String)application.getAttribute("char")); 这句链滚你写错了,应该是chat不是char
3.你第一次运行的时候application.getAttribute("chat")肯定是空的,是空野唤猛的话你又什么都不作,下次还是空的呀
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jsp:useBean id="counter" class="order.bean.Counter" scope="request"></jsp:useBean>
<%
//调用counter对象的ReadFile方法来读取文件webcount.txt中的计数
String dir=getServletContext().getRealPath("/webcount.txt");
String cont = counter.ReadFile(dir);
/羡卖/调用counter对象的ReadFile方法来将计数器加一后写入到文件webcount.txt中
counter.WriteFile(dir, cont);
%>
您是第<font color="red"><%=cont%></font>位访问者
Counter.java
private Logger log=Logger.getLogger(Counter.class);
private String currentRecord = null; //保存文本的变量
private BufferedReader file; //BufferedReader对象,用于读取文件数据
private String path; //文件完整路径名
//ReadFile方法用来读取文件filePath中的数据,并返回这裤派并个数据
public String ReadFile(String filePath) throws FileNotFoundException {
path = filePath;
//创建新的BufferedReader对象
file = new BufferedReader(new FileReader(path));
String returnStr = null;
try {
//读取一行数据并保存到currentRecord变量中
currentRecord = file.readLine();
} catch (IOException e) { //错误处理
System.out.println("读取数据错误.");
}
if (currentRecord == null) {
//如果文件为空
returnStr = "没有任何记录";
} else { //文件不为空
returnStr = currentRecord;
}
//返回读取文件的数据
return returnStr;
}
//ReadFile方法用来将数据counter+1后写入到文本文件filePath中
//以实现计数增长的功能
public void WriteFile(String filePath, String counter) throws
FileNotFoundException {
path = filePath;
//将counter转换为int类型并加一
int Writestr = Integer.parseInt(counter) + 1;
try {
//创建PrintWriter对象,用于写入数据到文件中
PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
//用文本格式打印整数Writestr
pw.println(Writestr);
//清除PrintWriter对象
pw.close();
} catch (IOException e) {
//错误处理
System.out.println("写入文胡迹件错误" + e.getMessage());
}
}
}
<%
//调用counter对象的ReadFile方法来读取文件webcount.txt中的计数
String dir=getServletContext().getRealPath("/webcount.txt");
String cont = counter.ReadFile(dir);
/羡卖/调用counter对象的ReadFile方法来将计数器加一后写入到文件webcount.txt中
counter.WriteFile(dir, cont);
%>
您是第<font color="red"><%=cont%></font>位访问者
Counter.java
private Logger log=Logger.getLogger(Counter.class);
private String currentRecord = null; //保存文本的变量
private BufferedReader file; //BufferedReader对象,用于读取文件数据
private String path; //文件完整路径名
//ReadFile方法用来读取文件filePath中的数据,并返回这裤派并个数据
public String ReadFile(String filePath) throws FileNotFoundException {
path = filePath;
//创建新的BufferedReader对象
file = new BufferedReader(new FileReader(path));
String returnStr = null;
try {
//读取一行数据并保存到currentRecord变量中
currentRecord = file.readLine();
} catch (IOException e) { //错误处理
System.out.println("读取数据错误.");
}
if (currentRecord == null) {
//如果文件为空
returnStr = "没有任何记录";
} else { //文件不为空
returnStr = currentRecord;
}
//返回读取文件的数据
return returnStr;
}
//ReadFile方法用来将数据counter+1后写入到文本文件filePath中
//以实现计数增长的功能
public void WriteFile(String filePath, String counter) throws
FileNotFoundException {
path = filePath;
//将counter转换为int类型并加一
int Writestr = Integer.parseInt(counter) + 1;
try {
//创建PrintWriter对象,用于写入数据到文件中
PrintWriter pw = new PrintWriter(new FileOutputStream(filePath));
//用文本格式打印整数Writestr
pw.println(Writestr);
//清除PrintWriter对象
pw.close();
} catch (IOException e) {
//错误处理
System.out.println("写入文胡迹件错误" + e.getMessage());
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你一共有两个问题
1。第一次进入没有chat这个Attribute,所以永远也进入不了这个循环。这是最主清弊携要的原因
2。可能是乱码,文字编码问题没有解决
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null) {
if(request.getParameter("mywords")!=null) {
String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="lab.jsp" method="get">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="button" name="sumbit" value="提交" onclick="form.submit()">
</form>
</答伏body>
</html>卜凯
1。第一次进入没有chat这个Attribute,所以永远也进入不了这个循环。这是最主清弊携要的原因
2。可能是乱码,文字编码问题没有解决
<%@ page language="java" pageEncoding="GBK"%>
<html>
<head>
<title>My JSP 'lab.jsp' starting page</title>
</head>
<body>
<%
if(application.getAttribute("chat")!=null) {
if(request.getParameter("mywords")!=null) {
String mywords=request.getParameter("mywords");
mywords=(String)application.getAttribute("chat")+"<br>"+mywords;
application.setAttribute("chat",mywords);
out.print((String)application.getAttribute("chat"));
}
}else{
application.setAttribute("chat","");
}
%>
<form action="lab.jsp" method="get">
<input type="text" size="30" name="mywords" value="我喜欢聊天">
<input type="button" name="sumbit" value="提交" onclick="form.submit()">
</form>
</答伏body>
</html>卜凯
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询