看起来你已经获取到127001这个IP了吧?
那你的代码就没错了。
只不过你用localhst:8080这么登录,IP就是127001
你非得想要看到192168的话,
看看你本机的IP是多少,开始->运行->cmd->ipconfig 就能查看到你本机的IP了
比如说你本机的IP是192168121的话
你在浏览器里面访问192168121:8080
打开的还是你做的那个页面
但是显示的IP就变成你想要的远程IP了。
requestsetCharacterEncoding("utf-8");
responsesetContentType("text/html;charset=utf-8");
PrintWriter out = responsegetWriter();
//获取请求参数
int id = IntegerparseInt(requestgetParameter("id"));
//调用dao层将这个id的学生找到
StudentDao sd = new StudentDao();
Student s = sdfindById(id);
//将学生对象保存到request范围
requestsetAttribute("s", s);
//使用请求转发,让修改页面展示将要被修改的学生信息
requestgetRequestDispatcher("updatejsp")forward(request, response);
outflush();
outclose();
这是servlet里面的内容
public Student findById(int id){
Student s = null;
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
String sql = "select from student where stuid=";
//获取连接
conn = BaseDaogetConn();
try {
pstm = connprepareStatement(sql);
pstmsetInt(1, id);
//执行查询
rs = pstmexecuteQuery();
if(rsnext()){
int stuId = rsgetInt("stuid");
String stuName = rsgetString("stuname");
String stuSex = rsgetString("stusex");
int stuAge = rsgetInt("stuage");
String stuBid = rsgetString("stubid");
//先将数据封装到Student对象中
s = new Student(stuId, stuName, stuSex, stuAge, stuBid);
//将对象放入集合
}
} catch (SQLException e) {
eprintStackTrace();
}finally{
BaseDaocloseAll(conn, pstm, rs);
}
return s;
}
//这是写在Dao里面的内容
//这个是BaseDao 加载驱动 获取链接的
public class BaseDao{
//加载驱动
static{
try {
ClassforName("oraclejdbcdriverOracleDriver");
} catch (ClassNotFoundException e) {
eprintStackTrace();
}
}
//获取连接
public static Connection getConn(){
Connection conn = null;
try {
conn = DriverManagergetConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "130130");
} catch (SQLException e) {
eprintStackTrace();
}
return conn;
}
//关闭所有资源
public static void closeAll(Connection conn,Statement st,ResultSet rs){
try {
if(null!=rs){
rsclose();
}
if(null!=st){
stclose();
}
if(null!=conn){
connclose();
}
} catch (SQLException e) {
eprintStackTrace();
}
}
}
java获取客服端信息(系统,浏览器等)
String agent = requestgetHeader("user-agent");
Systemoutprintln(agent);
StringTokenizer st = new StringTokenizer(agent,";");
stnextToken();
String userbrowser = stnextToken();
Systemoutprintln(userbrowser);
String useros = stnextToken();
Systemoutprintln(useros);
Systemoutprintln(SystemgetProperty("osname")); //win2003竟然是win xp?
Systemoutprintln(SystemgetProperty("osversion"));
Systemoutprintln(SystemgetProperty("osarch"));
Systemoutprintln(requestgetHeader("user-agent")); //返回客户端浏览器的版本号、类型
Systemoutprintln(requestgetMethod()); //:获得客户端向服务器端传送数据的方法有get、post、put等类型
Systemoutprintln(requestgetRequestURI()); //:获得发出请求字符串的客户端地址
Systemoutprintln(requestgetServletPath()); //:获得客户端所请求的脚本文件的文件路径
Systemoutprintln(requestgetServerName()); //:获得服务器的名字
Systemoutprintln(requestgetServerPort()); //:获得服务器的端口号
Systemoutprintln(requestgetRemoteAddr()); //:获得客户端的ip地址
Systemoutprintln(requestgetRemoteHost()); //:获得客户端电脑的名字,若失败,则返回客户端电脑的ip地址
Systemoutprintln(requestgetProtocol()); //:
Systemoutprintln(requestgetHeaderNames()); //:返回所有request header的名字,结果集是一个enumeration(枚举)类的实例
Systemoutprintln("Protocol: " + requestgetProtocol());
Systemoutprintln("Scheme: " + requestgetScheme());
Systemoutprintln("Server Name: " + requestgetServerName() );
Systemoutprintln("Server Port: " + requestgetServerPort());
Systemoutprintln("Protocol: " + requestgetProtocol());
Systemoutprintln("Server Info: " + getServletConfig()getServletContext()getServerInfo());
Systemoutprintln("Remote Addr: " + requestgetRemoteAddr());
Systemoutprintln("Remote Host: " + requestgetRemoteHost());
Systemoutprintln("Character Encoding: " + requestgetCharacterEncoding());
Systemoutprintln("Content Length: " + requestgetContentLength());
Systemoutprintln("Content Type: "+ requestgetContentType());
Systemoutprintln("Auth Type: " + requestgetAuthType());
Systemoutprintln(">
request 常用方法介绍
getProtocol():获取请求使用的通信协议,如>
通过serlvet传递过去,比如你可以定义这样的一个方法,在serlvet中调用就可以了,至于你说的不通过serlvet之类的获取是不可能的。
public void add(>
前台jsp页面:
<body>
<form id="formId" action="xxx/yyy/zzz"> //action里是提交到后台控制层的路径
<input type="text" name="name1" id="id1" value="想让后台接到的值"/>
<input type="submit" value="提交"/>
</form>
</body>
<!-- 一般想让前台的值传到后台大多会用表单提交,把你要传的值写在form表单里,name名称就是后台接值要用到的名称,id一般是在js里使用,或者使用jquery时会用到;在点击提交或者查询按钮后,表单里的值会根据action的路径传到后台 -->
后台控制层(Controller):
@RequestMapping(value="/xxx/yyy")
public class formController{
@RequestMapping(value = "/zzz")
public String getValue(String name1){ //比如说要传到后台的是一个string类型的字符串
Systemoutprintln(name1); //打印出的值就是前台input里填写的value值
//这时你就可以将接到的前台的值再传到service里从而对数据库进行 *** 作等
return "/mmm/nnn/lll"; //在对数据进行 *** 作以后,可以返回你想返回的页面,return后跟的就是页面的路径
}
}
//只是大体说了一下,我觉得这个应该不难懂吧,就算是别的框架,总体还是大同小异的,思想都差不多
以上就是关于关于java获取登录用户id的问题全部的内容,包括:关于java获取登录用户id的问题、JAVA servlet中怎么根据JSP页面传来的ID,用hql语句查询主键ID里的信息、java怎么获取客户端的请求信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)